Born in Farnborough, England, Holmes-Dennis started his football career at Charlton Athletic and progressed through the club's academy ranks.[3] In October 2013, he signed his first professional contract, a three-year deal.[4]
Holmes-Dennis joined Oxford United on loan in October 2014 from Charlton Athletic.[5] Oxford manager Michael Appleton commented: "He'll certainly give us a lot of energy down that left hand side and give us a healthy competition for places."[6] Holmes-Dennis made his Football League debut against Tranmere Rovers at the Kassam Stadium in a 2–0 League Two win on 18 October 2014.[7] His parent club allowed Oxford to select him in the FA Cup.[8] Holmes-Dennis's loan spell with Oxford was extended until 10 January and then extended again until the end of the 2014–15 season.[9][10] However, Holmes-Dennis was recalled by the club on 2 February 2015.[11]
On 5 February 2015, Plymouth Argyle announced that Holmes-Dennis would join them when the loan window opened the following week, on a loan deal until the end of the season.[12] Holmes-Dennis made his Argyle debut, playing as a left-back, in a 2–0 win over Wycombe Wanderers on 10 February 2015,[13] and scored his first Plymouth Argyle goal (also his first professional goal) in a 3–2 win over Tranmere Rovers on 25 April 2015.[14] Following this, Holmes-Dennis remained at Plymouth for the club's play-off campaign[15] and featured in both matches, as Argyle lost to Wycombe Wanderers. Holmes-Dennis returned to his parent club having made seventeen appearances.[16]
After a season of sporadic appearances for Huddersfield, which ended in the Terriers achieving promotion to the Premier League, Holmes-Dennis joined Portsmouth on a season-long loan deal,[19] Portsmouth having just returned to League One after a four-year absence. Holmes-Dennis started the first game of the season, at home to Rochdale, at left-back; unfortunately he suffered an injury after just 39 minutes of his competitive debut and had to be substituted.[20]
Bristol Rovers
On 23 July 2018, Holmes-Dennis joined Bristol Rovers for an undisclosed fee, where he met up with his new teammates at their training camp in Holland.[21] He made his first start for the club in a 2–1 away defeat to Sunderland[22] and scored his first goal for the club on Boxing Day in a 3–1 victory over Walsall.[23]
Following his release at the end of the 2019–20 season, Holmes-Dennis announced his retirement in October 2020 due to his recurring knee injury aged just 24.[24]
In mid-2013, Holmes-Dennis was called up to the England U18 squad, alongside Tobi Sho-Silva.[3] He made his England's debut on 6 March 2013, alongside Sho-Silva, in a 1–0 defeat to Belgium U18.[26]