Born in Lewisham,[4] Reeves moved from Tottenham Hotspur to Brentford in 2009 and was given a two-year scholarship.[5] He captained the youth team during the 2010–11 season and was given his first team debut by Nicky Forster in the last game of the season,[6] when he replaced Myles Weston after 82 minutes of a 4–4 draw with Huddersfield Town.[7] At the end of the season he signed a two-year professional contract to be part of the Development Squad. Described by new boss Uwe Rösler as a "big option",[8] Reeves made his first start for the club on the opening day of the 2011–12 season in a 2–0 home win over Yeovil Town.[9] He was due to move on loan to Hayes & Yeading United in November 2011, but the move was delayed on 17 November due to ill health,[10] before the deal was cancelled entirely a week later.[11] He made only two further substitute appearances for Brentford during the 2011–12 season, making 11 appearances in total,[12] but by January 2012, Director of Youth Football Development Ose Aibangee had stated that Reeves "is considered a member of the first team squad".[13]
Reeves started Brentford's first game of the 2012–13 season against Walsall in the League Cup first round, but he lasted only 25 minutes before being sent off for a challenge on Adam Chambers.[14] He failed to feature for Brentford again until making a starting appearance in a 2–1 Football League Trophy defeat to Southend United in December. In an FA Cup match versus Chelsea on 17 February 2013, Reeves was left concussed following a collision with opposition defender David Luiz.[15] Reeves signed a new two-year deal in April 2013,[6] after making 15 appearances during the 2012–13 season.[16]
Reeves was made available for loan in October 2013,[17] after managing just one league start during the first four months of the 2013–14 season.[18] He instead saw regular action in the Development Squad during the first half of the season, making seven appearances.[19] Reeves scored the first senior goal of his career in an FA Cup first round tie against local neighbours Staines Town on 9 November, bagging the second in a 5–0 victory.[20] Despite regular substitute appearances and a start under new manager Mark Warburton,[21] Reeves was again made available for loan in February 2014.[22] The departure of central midfielderToumani Diagouraga on loan and injury to Adam Forshaw saw Reeves win his second start under Warburton in a 2–0 win over Tranmere Rovers on 11 March.[23] Reeves made sporadic appearances through to the end of the season and celebrated the Bees' automatic promotion to the Championship after a 1–0 win over Preston North End on 18 April.[24] In the 2013–14 season, Reeves made 25 appearances and scored his first goal for the club.[25]
After failing to be named in any Brentford league squad in the opening month of the 2014–15 Championship season,[26] Reeves was made available for loan on 18 August 2014.[27] He chose to terminate his contract by mutual consent on 29 August and departed Griffin Park.[28] Manager Mark Warburton said Reeves "needs to play week-in, week-out. With the level of player we have here, that opportunity is not available at Brentford now".[28] Reeves made 47 appearances and scored one goal during his time with the Bees.[3]
Reeves moved on loan to League Two club AFC Wimbledon on 5 November 2012. He made his debut the following day in a 2–0 defeat at Exeter City.[31] He was recalled by Brentford on 4 December 2012 due to an injury crisis.[32] He made five appearances and scored no goals.[16]
Swindon Town
Reeves signed for League One side Swindon Town on 29 August 2014, on a short-term deal running until January 2015.[33][34] After his arrival, he said "I've got a lot of energy to give to the team and you'll hopefully see some good passing ranges too. I also hope to score a few goals".[35] Reeves made his debut for the Robins with a late substitute appearance for goalscorer Jonathan Obika in a 2–1 victory over Bradford City on 13 September.[36] He scored his first goal for the club on his fifth appearance, scoring the second goal in a 3–0 win over Barnsley on 27 September.[37] Reeves left the club in late December 2014, after his deal expired.[38] He made 12 appearances and scored one goal, managing just three starts.[26]
AFC Wimbledon
In December 2014, it was reported that Reeves' former club AFC Wimbledon had shown interest in signing him.[39]
In January 2015 Reeves rejoined the club on a permanent deal.[40]
Bradford City
In June 2017 he was linked with a transfer to Bradford City.[41][42] He signed a three-year contract with the club in July 2017, after moving for an undisclosed sum thought to be around £150,000.[43][44] In September 2017 he spoke positively of the pressure expected of him,[45] and in October 2017 of the team's strong start to the season.[46] In January 2018 he suffered a recurrence of a groin injury he first had in November 2017, potentially ruling him out until the end of the season.[47] In August 2018 he was stated to be close to returning to fitness.[48] In November 2018 he was still injured and hadn't appeared played for the club since January 2018.[49] In February 2019, after 13 months of injury, club manager David Hopkin said he was still unsure when Reeves would return to play.[50] In April 2019 new City manager Gary Bowyer (the fourth since Reeves was injured 15 months before) said he wanted Reeves to play as he would suit his management style.[51] In May 2019 it was announced that Reeves would continue his rehabilitation throughout the summer break, ahead of the 2019–20 season.[52] In June 2019, Bowyer said that he had noticed a more positive attitude from Reeves,[53] and in August 2019 Bowyer said that Reeves' input on footballing matters was beneficial.[54] In September 2019, after 20 months of injury, Bowyer said there was no pressure on Reeves as he continued his rehabilitation.[55] In November 2019, Bowyer said that Reeves was getting fitter and had joined in with team training for the first time since his injury.[56] Later that month he was an unused substitute in the 1–1 FA Cup draw away at Shrewsbury Town,[57] before returning to the first-team as captain in the EFL Trophy game at home to Rochdale three days later.[58][59] Reeves later thanked Bowyer for his support throughout his injury,[60] whilst Bowyer also praised Reeves, describing him as being like a "new signing",[61] and setting the standard for other players.[62] In January 2020 he was critical of the club's away form.[63] In February 2020 he said he felt under pressure to perform for new City manager Stuart McCall, whom he had played under previously.[64] Reeves later revealed that he didn't train with the team for two years due to injury.[65]
On 26 May 2020 it was announced that he was one of 10 players who would leave Bradford City when their contract expired on 30 June 2020.[66]
Reeves agreed terms with League Two club Stevenage on 21 June 2021, officially joining the club upon the expiry of his Notts County contract.[68][69] Reeves scored his first Stevenage goal on the opening day of the season against Barrow.[70]
Third spell at Wimbledon
In May 2023, it was announced that he would return to AFC Wimbledon on 1 July 2023.[71] He was named Wimbledon's Player of the Year for the 2023–24 season.[72]