Huddersfield Town Having been included in the first team, Holmes was given number 38 shirt. Holmes made his début for the Terriers in the
Football League Cup game against
Hull City at the
KC Stadium on September 24, 2013, coming on as a substitute for fellow débutante
Daniel Carr. He made his first league début in the 1–1 draw against
Blackpool at the
John Smith's Stadium on September 27, 2013, setting up the equalizer for
James Vaughan. After the match, Manager
Mark Robins praised Holmes' performance. He made his first start for the Terriers in the 3–2 win over
Leeds United on October 26, before being subbed at half-time for
Sean Scannell. At the start of the 2014–15 season, Holmes switched shirt numbers from 39 to 19. At the end of the season, Holmes was offered a new contract by the club, and on June 22, 2015, he signed the extension.
Loan spells On February 20, 2014, Holmes was sent out on a month's loan to fellow Championship side
Yeovil Town. Holmes made his debut the following Saturday against
Doncaster Rovers, earning a penalty which won Yeovil the match 1–0. Despite the fact that manager
Gary Johnson was keen to extend Holmes' loan spell, he returned to Huddersfield Town on March 17, having started all five of his games at Yeovil. On August 30, after making just one substitute appearance at the start of the season, Holmes joined
League Two side
Bury on loan until January 5, 2015. He made his Bury debut the next day, coming on as a substitute for
Nicky Adams in the 79th minute of a 2–1 win against
Accrington Stanley. He returned to Huddersfield Town on October 29, having started six of his games at Bury.
Scunthorpe United Holmes signed for
Scunthorpe United on July 7, 2016, following his release from Huddersfield Town. He made his first appearance in an Iron shirt during the EFL CUP round 1 tie with Notts County on August 9. He came off the bench to help earn a 2–0 victory in extra time.
Derby County Holmes signed for
Derby County on August 9, 2018, for an undisclosed fee reported to be around £700k. Towards the end of his time at Derby, he displayed displeasure at being played out-wide rather than in his preferred position of down the middle. Holmes was dropped from Derby's first team in December 2020 and, after failing to make the bench in January, manager
Wayne Rooney questioned Holmes' attitude, saying "He needs to perform better in training and give me an option to see if I use him or not. So that is on him to do that." With his contract approaching its end in 2021, Derby opened contract talks with Holmes but failed to agree to terms.
Return to Huddersfield Town On January 25, 2021, Holmes rejoined
Huddersfield Town on a three-and-a-half-year deal for an undisclosed fee.
Preston North End On July 12, 2023, Holmes joined
Preston North End on a two-year deal for an undisclosed fee, ending his second stint at
Huddersfield Town after two and a half years.
Houston Dynamo On March 11, 2025, Holmes signed for
Major League Soccer club
Houston Dynamo on a free transfer, signing a contract until the end of the 2026 season with the option to extend. ==International career==