Born in Farnborough, England, Holmes-Dennis started his football career at Charlton Athletic and progressed through the club's academy ranks. In October 2013, he signed his first professional contract, a three-year deal. Holmes-Dennis joined Oxford Unitedon loan in October 2014 from Charlton Athletic. 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." 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. His parent club allowed Oxford to select him in the FA Cup. Holmes-Dennis's loan spell with Oxford was extended until 10 January and then extended again until the end of the 2014–15 season. However, Holmes-Dennis was recalled by the club on 2 February 2015. 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. Holmes-Dennis made his Argyle debut, playing as a left-back, in a 2–0 win over Wycombe Wanderers on 10 February 2015, and scored his first Plymouth Argyle goal in a 3–2 win over Tranmere Rovers on 25 April 2015. Following this, Holmes-Dennis remained at Plymouth for the club's play-off campaign and featured in both matches, as Argyle lost to Wycombe Wanderers. Holmes-Dennis returned to his parent club having made seventeen appearances. On 18 March 2016, Holmes-Dennis joined League One club Oldham Athletic on loan for the remainder of the 2015–16 season.
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, 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.
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. He made his first start for the club in a 2–1 away defeat to Sunderland and scored his first goal for the club on Boxing Day in a 3–1 victory over Walsall.
International career
In mid-2013, Holmes-Dennis was called up to the England U18 squad, alongside Tobi Sho-Silva. He made his England's debut on 6 March 2013, alongside Sho-Silva, in a 1–0 defeat to Belgium U18.