Thompson made his debut for Linfield in the 2001–02 season as a substitute. However, the following season he started 6 games and appeared as a sub on a further 9 occasions, scoring twice. The 2003–04 season was equally uninspiring with only nine games, all as a sub, and no goals. With his career seemingly going nowhere in 2004–05, Thompson managed to force his way into the team, hitting 27 goals in 43 starts, inspiring Linfield onto an outstanding 'Clean Sweep' of 4 domestic trophies. He was the Irish Premier League's top goalscorer in the 2005–06 season, scoring 25 goals in the league. The 2006–07 season was equally fruitful with 31 goals in 51 games and in his final season with the Irish Champions, he hit a very impressive 44 goals in 48 starts. In the 2008–09 season he only appeared in one competitive match, when Linfield lost 2–0 to an excellent Dinamo Zagreb side. He did however score 2 goals in two friendly games at the start of the season.. On 17 July 2008, Linfield gave Thompson permission to negotiate terms with Stockport County after agreeing a fee for the striker believed to be in the region of £100,000 plus add-ons. Norwich City were also keen to sign Thompson but could not reach an agreement with Linfield. Thompson left Linfield as a Goalscoring Legend with 152 goals in 235 games, including 33 sub appearances, averaging 1 goal every 1.45 games. Fans bade Thompson an emotional farewell in a flood of messages published on the Linfield website, in which the club branded him one of their greatest players and an exemplary sportsman.
Stockport County
He officially signed for the Cheshire club the following day and was handed the number nine shirt, worn previously by Stockport strikers Kevin Francis, Brett Angell and Luke Beckett. Thompson made his début against Liverpool reserves on 26 July. He did not manage to get on to the scoresheet however he did impress and had one shot cleared off the line and hit the post on another occasion, as Stockport drew 1–1. He did however manage to get on the score sheet in the 86th minute to put Stockport 2–1 up against Manchester City, before City equalised in stoppage time. Thompson was dubbed "A Player To Watch" in League One by the leading newspapers in the UK and bagged his first competitive Stockport goal in their 2–2 draw at Cheltenham on 27 September 2008. Despite the promising start, Thompson struggled to adapt to Stockport's tactics, with their point-striker style of play not complementing his attributes. He was forced out of the first team by loan signings better suited to Stockport's tactics, and was hit with a further setback when a chest infection turned serious causing Thompson a collapsed lung. He was unable to return to first-team action until April 2009.
Back to Linfield
announced on 6 January 2010 that the player had rejoined them on loan from Stockport until the end of the 2009–10 season. On 1 July 2010, Linfield announced that Thompson had re-joined the team permanently, on a 3-year deal. In the 2010–11 season, his first full season back at the club, he finished as the top goal scorer in the league, with 23 league goals in 34 appearances.
International career
With his prolific goalscoring at club level, he made his Northern Ireland debut against Portugal in 2005 and has made 8 appearances to date, scoring 1 goal against Georgia.
International goals
Scores and results list Northern Ireland's goal tally first.