Holmes was born in Birkenhead, Merseyside.[1] He began his career with Tranmere Rovers, the team he supports, joining the club at the age of seven.[2] He originally played as a forward but eventually became a defender.[citation needed] Having captained the youth and reserve teams,[citation needed] he signed his first professional in July 2007, shortly before the 2007–08 season.[1]
Holmes spent the latter half of the season on loan at Conference North club Southport, making 15 appearances.[3] At the end of 2008–09, having made one league appearance during a 1–0 defeat to Yeovil Town on 22 November 2008,[4] Holmes was released by Tranmere.[5]
He left TNS at the end of 2010–11, refusing to sign a new contract, and also being named in the Welsh Premier team of the season.[citation needed]
Tranmere Rovers (second spell)
On 27 June 2011, Holmes re-signed for Tranmere Rovers on a one-year contract.[8] On 25 August 2011, he joined Fleetwood Town on a one-month loan to attempt to gain some first-team experience.[9]
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 2012–13.[10]
Holmes scored his first goal for Tranmere in a 5–2 away win over Crawley Town on 22 September 2012.[11]
Newport County
On 24 June 2015, following Tranmere's relegation into the National League, Holmes joined League Two club Newport County.[12] He made his debut for Newport on 8 August 2015 versus Cambridge United.[citation needed] He was offered a new contract by Newport at the end of 2015–16 but the offer was withdrawn and he was released after he failed to accept the contract by the deadline of 10 June 2016.[13]
On 10 July 2017, Holmes signed for Welsh Premier League club Bangor City.[18]
Connah's Quay Nomads
Following Bangor's demotion from the Welsh Premier League, Holmes joined Connah's Quay Nomads, with Nomads manager Andy Morrison stating Holmes was "the outstanding fullback in the league last season".[19]
Colwyn Bay
In June 2023, Holmes joined Colwyn Bay as a player/coach after their promotion to the Welsh Premier League. Holmes left Colwyn Bay in October 2023.[20]
Managerial career
Vauxhall Motors
In October 2023, Holmes took up his first managerial position at Vauxhall Motors.[21]