Holmes joined Bournemouth's academy full-time in the summer of 2013. He started 16 times for the Under-18s in the 2013–14 season and produced an impressive string of saves throughout the season; he was promoted to the U21 development team at the age of 16. Holmes signed his first professional contract within nine months of commencing his 2-year academy contract. In July 2014, he was chosen as the reserve keeper for Bournemouth's first team friendlies against Southampton and Swansea City. In 2015–16, he made a number of league appearances for the Under-21s, as a result of many impressive performances in July 2015 he was selected as the back-up goalkeeper for the Bournemouth versus Nantes game. In October 2015 Holmes traveled with the first team for the League Cup match against Liverpool and in November 2015 again traveled with the first team to be part of the Premier League game with Southampton. In November 2015, Holmes went on loan to Weymouth as the first team 'keeper. However, in December 2015 he was recalled from his loan spell for the Premier League game with Chelsea at Stamford Bridge due to injuries to Artur Boruc and Adam Federici – he remained with Bournemouth for the remainder of the 2015–16 season. In May 2016, Holmes made the bench away to Manchester United at Old Trafford as the back-up to Federici. In 2016–17, Holmes continued to be part of the first team squad on match days. In August 2016, Holmes was on the bench for an EFL match vs Morecambe and in September 2016, he played in a friendly against AC Milan. Holmes captained Bournemouth's U23s on a number of occasions in the first half of the season, appearing 14 times, before going on loan to Eastbourne Borough in the National League South in January 2017. In 2017–18, Holmes continued to be part of the first team squad, playing 18 times for the U23s. Holmes signed a one-year contract extension in May 2018. In January 2019, Holmes joined Scottish Premiership sideSt Mirren on loan until the end of the season. He was released by Bournemouth at the end of the season. Holmes joined Ebbsfleet United in August 2019, making his debut in a 2–2 against Notts County. A week later, Holmes saved a second half penalty against Aldershot Town. He saved another penalty in a match against Wrexham, although it could not prevent a 1–0 loss.
International career
Holmes has represented Australia at national level for the U19s and U20s in the Asian Championship and U20's World Cup qualifiers. In May 2015 Holmes was selected to play against Brazil for Australia's U20s at Win Stadium Wollongong. Although Australia were defeated 1–0, Holmes produced a man of the match performance pulling out a string of outstanding saves from Gabriel Jesus and Andrea Perieria. Holmes is currently vice captain of the U23 Australian Olyroos.