Career
He plays in right or central defence and is a product of Tranmere Rovers" youth system. Tranmere Rovers
Born in the Birkenhead, Holmes began his career with Tranmere Rovers the team he supports, joining the club at the age of 7. He originally played as a Forward but eventually became a Defender.
Having captained the youth and reserve sides, he signed as a professional shortly before the 2007-2008 season, and was given the number 26 shirt.
Holmes spent the latter half of the season on loan at Conference North side Southport, making 18 appearances in all competitions. At the end of the 2008-2009 season, having made one league appearance during a 1–0 defeat to Yeovil Town on 22 November 2008, Holmes was one of five players released by Tranmere, together with Paul Henry, Edrissa Sonko, Adnan Ahmed and Luke Waterfall.
The New Saints
He made his debut for the side in a 2–1 defeat to Icelandic side Knattspyrnufélagið Fram in the first qualifying round of the Union of European Football Associations Europa League. At the end of his first season with the club, he was named in the Welsh Premier League team of the season.
He left TNS at the end of the 2010-2011 season refusing to sign a new contract and also being named in the Welsh Premier team of the season.
Tranmere Rovers (second spell)
The Welsh Premier League reported on 21 June 2011 that he was set to re-sign for Tranmere, and on 27 June the club confirmed he had signed a one-year contract. On 25 August he joined Fleetwood Town on a month"s loan to attempt to gain some first team experience. After breaking into the team in early 2012 and becoming a regular and also winning the young player of the year award, Tranmere took up a further one year option on him for the 2012-2013 season.
Newport County
On 24 June 2015, following Tranmere"s relegation to the National League, Holmes joined League Two Newport County.
He made his debut for Newport on 8 August 2015 versus Cambridge United.