Cousins began his career with the Charlton Athletic Academy joining the under-13s and he signed professional terms in March 2011. He won the League One Apprentice of the Year award in 2012. He made his Charlton Athletic debut on 6 August 2013 in a 4–0 win against Oxford United in the League Cup. On 17 August 2013, he scored on his league debut in a 2–2 draw against Barnsley. Cousins described his first league goal as a "a dream come true". On 4 October 2013, Cousins signed a new three-year contract at the club, keeping him at The Valley until 2016. Cousins impressed manager Chris Powell enough to establish himself in the first team at The Valley and his bright start to life in Championship football saw him win the Football League Young Player of the Month award for October 2013. Cousins played 47 times in 2013–14 as Charlton finished in 18th position. He made the same amount of appearances in 2014–15 as the Addicks finished in 12th. On 31 July 2015, Cousins signed a new four-year contract. Cousins played 42 times in 2015–16 as Charlton had a poor campaign and were relegated to League One. Following Charlton's relegation they received a bid for Cousins from Queens Park Rangers.
Queens Park Rangers
On 13 July 2016, Cousins joined Queens Park Rangers on a three-year deal. His first season with QPR, in 2016–17 was disrupted by injuries with Cousins undergoing surgery on a quad muscle injury in April 2016. His missed the start of the 2017–18 season after picking up another hamstring injury. He returned to the first team in October 2017 and went on to make 16 appearances as QPR finished in 16th position. He was sent-off for the first time in his career in a 2–0 EFL Cup defeat at Blackpool on 25 September 2018. Cousins scored his only goal for QPR in a 4–3 defeat against Birmingham City on 9 February 2019. His 2018–18 season was ended after he was stretchered off in a 2–1 home defeat to Blackburn Rovers on 19 April 2019. Cousins was released by QPR at the end of the season.
Stoke City
On 25 June 2019, Cousins joined Stoke City. He had previously worked with manager Nathan Jones at the Charlton Athletic Academy. He made his debut on the opening day of the 2019–20 season in a 2–1 defeat against his old club Queens Park Rangers. Cousins struggled for game time under Jones and spent two months out the squad before Michael O'Neill started him against Luton Town in December 2019. He kept his place in the side as Stoke's results began to improve and they edged away from the relegation zone. Cousins made 24 appearances in 2019–20 as Stoke finished in 15th position.