Coventry City Thomas joined the Coventry City Academy after being spotted playing for local side Christ The King FC. He was approached by scouts from the likes of Aston Villa and Birmingham too, but decided to start his career with the Sky Blues. He made his professional debut as a substitute on 8 January 2011 in a 2–1
FA Cup win over
Crystal Palace, coming on to replace
Gary McSheffrey after 72 minutes and made his full debut for the club on 25 January, again during an FA Cup tie, against
Birmingham City. He joined
Premier League club
Liverpool initially on loan on 31 January 2011, with a view to a permanent move but after playing and training with Liverpool's reserves and training with the first team on seven occasions he returned to Coventry after a hamstring injury and the mutual decision to end the loan. Thomas scored his first senior goal on 31 January 2012 in a 2–1 defeat away to
Blackpool, opening the scoring in the 59th minute. After a six-year spell at Coventry, Thomas was released by the club in June 2016.
Swindon Town On 4 July 2016, following his release from Coventry City, Thomas joined fellow League One side
Swindon Town on a three-year deal. On 6 August 2016, Thomas made his Swindon Town debut in a 1–0 victory against his former side, Coventry City, featuring for the entire 90 minutes. On 25 March 2017, Thomas scored his first goal for Swindon, netting the winner in their 1–0 victory over
Millwall in the 90th minute.
ATK On 23 August 2017, Thomas joined
Indian Super League side
ATK.
Cheltenham Town On 25 May 2018, Thomas returned to England to join
League Two side
Cheltenham Town on a two-year deal. He helped Cheltenham to the
2019–20 League Two play-off semi-finals, only to lose 3–2 on aggregate against
Northampton Town. After four seasons, on 6 May 2022, Thomas left the club after not being able to reach an agreement with the club on new terms.
Crewe Alexandra in 2023. On 19 May 2022, he joined
Crewe Alexandra. He started in Crewe's opening game of the 2022–23 season, a 2–1 victory over
Rochdale at
Spotland. and he scored his first Crewe goal in the side's 2–1 win over former club
Swindon Town at
Gresty Road on 29 April 2023. In May 2024, Thomas signed a new two-year deal, keeping him at Crewe until the summer of 2026. In late October, Thomas sustained a freak knee injury as a result of a teammate taking an ill-timed shot in training, ruling him out of action until early 2025. He eventually made a substitute appearance in Crewe's 3–1 win at
Chesterfield on 1 March 2025. He started his fourth season with Crewe by scoring twice in the side's 3–1 victory at
Salford City on 2 August 2025. ==International career==