Thompson was born in Lambeth, London, in 2000.[3][2] and joined Fulham F.C. Academy in 2011 as an 11-year-old.[4] He attended Coombe Boys' School in New Malden, with which the Fulham club had a relationship, and helped their teams win the English Schools' Football Association's Cup at under-14 and under-15 levels,[5][6] before taking up a two-year scholarship with Fulham in 2016.[7] Although the second year of his scholarship was disrupted by injury, he was able to make a debut in open-age football for Fulham U21s in the EFL Trophy against Charlton Athletic in November 2017; he gave his side a 63rd-minute lead, but the League One side came back to win 3–2.[8] Thompson signed his first professional contract, of two years, in May 2018.[4] He scored freely at under-18 level, moved up to the under-23s,[4] and made three more EFL Trophy appearances,[9] but missed much of his second professional season with a hamstring injury,[10] and was released when his contract expired.[11]
After a trial during which he scored twice in reserve-team matches, Thompson signed a professional contract with Barnsley on 11 December 2020.[12] He made his first-team debut on 10 August 2021 as a second-half substitute away to Bolton Wanderers in the EFL Cup. The match ended goalless, and Thompson took no part in the penalty shoot-out, which Barnsley lost 5–4.[13] He made his Football League debut as a very late substitute in a 2–1 defeat at Birmingham City on 22 January 2022.[14]
He made no further appearances for Barnsley's first team before,[15] on 4 March, he joined National League North club Darlington on loan until the end of the season.[16] He was on the bench for the next day's match against Blyth Spartans, and came on with half an hour left and the game goalless. In the 12th of more than 20 minutes of stoppage time – due to a medical emergency in the crowd – he was involved in the only goal of the match. After Spartans' goalkeeper parried a shot, the ball fell to Thompson, whose shot rebounded off the crossbar to Jake Lawlor who scored.[17] Thompson started the next match, away to York City, and scored his first goal for Darlington, albeit in the last minute of a 3–1 defeat.[18] It was his only goal from 10 appearances.[19]
After leaving Barnsley, Thompson trained with Torquay United of the National League, and then signed on non-contract terms in late October 2022 as what manager Gary Johnson described as part of an extended trial.[20] He made his debut on 29 October as a substitute in the 4–0 defeat away to Notts County.[21]