Thompson was selected in the 8th round of the 2003 Major League Baseball Draft by the Montreal Expos. He made his professional debut for the rookie ball GCL Expos. He spent the 2004 season in Single-A with the Savannah Sand Gnats, recording a 4–9 record and 5.08 ERA with 79 strikeouts in 25 games for the club. After the team Expos moved to Washington and became the Nationals in 2005, Thompson remained in Savannah for the year, pitching to a 3.35 ERA with 48 strikeouts in 53.2 innings of work. Thompson was assigned to the Low-A Vermont Lake Monsters to begin the 2006 season.[1]
After compiling a 2.22 ERA in the minors, Thompson was called up by the Reds on June 20, 2008, to replace the 0-3 Homer Bailey. His first start came on June 21, 2008, against another rookie making his first start, Dan Giese of the New York Yankees.[3] He pitched well, allowing no runs while striking out two and stranding eight baserunners (four hits/four walks) over five innings.[4] Thompson allowed 11 earned runs in 14.1 innings for the Reds in 2008.
After 2009 Spring Training, he was assigned to the Triple ALouisville Bats to gain more experience.[5] On November 20, 2009, Thompson was outrighted to Louisville from the 40-man roster, and accepted his assignment with an invite to Spring Training. He spent the 2010 season in Double-A with the Carolina Mudcats, recording a 3.71 ERA in 12 games.
On November 19, 2010, Thompson was re-added to the 40-man roster.[6] On May 26, 2011, Thompson was recalled to the majors when Matt Maloney was placed on the 15-day disabled list with a strained left oblique.[7] He was optioned back down the next day without making an appearance but was recalled again on June 6. Thompson gave up 5 runs in 3.0 innings for the Reds before being again optioned down the next day. On October 31, 2011, Thompson was outrighted off of the 40-man roster.[8]
Minnesota Twins
On November 22, 2011, Thompson signed a minor league contract with the Minnesota Twins organization and was invited to major league Spring Training.[9][10] He did not make the club out of spring and was assigned to the Rochester Red Wings. After recording a 4.71 ERA in 9 games, Thompson was released by the Twins on June 1, 2012.[11]
Southern Maryland Blue Crabs
After his release by the Twins, Thompson signed with the Southern Maryland Blue Crabs of the Atlantic League of Professional Baseball.[12] In 11 games for the club, he recorded a 2.94 ERA with 55 strikeouts in 49.0 innings pitched. In 2013 for the Blue Crabs, Thompson pitched in 22 games, recording a 10–5 record and 3.18 ERA.
New York Mets
On August 20, 2013, Thompson signed a minor league contract with the New York Mets organization and was assigned to the Triple-A Las Vegas 51s.[13] He recorded a 3.97 ERA in 9 appearances in Las Vegas and elected free agency on November 4, 2013.
Guerreros de Oaxaca
On April 15, 2014, Thompson signed with the Guerreros de Oaxaca of the Mexican League.[14] He allowed 5 runs in 2.1 innings before being released on April 18.
Southern Maryland Blue Crabs (second stint)
Thompson returned to the Southern Maryland Blue Crabs after his stint with Oaxaca and turned in a 7–6 record and 4.76 ERA with 99 strikeouts in 22 appearances for the club. He became a free agent after the season.
Piratas de Campeche
On April 1, 2015, Thompson signed with the Piratas de Campeche of the Mexican League.[15] He allowed 31 runs in 30.2 innings across 8 games for the Piratas before his release on May 16, 2015.
Southern Maryland Blue Crabs (third stint)
Thompson again re-signed with the Southern Maryland Blue Crabs after being released from Campeche. On the season, Thompson pitched to a 7–7 record and 3.87 ERA with 68 strikeouts in 109+1⁄3 innings pitched.[16] He returned to the Blue Crabs for the 2016 season, recording a 5–9 record and 4.69 ERA in 132+1⁄3 innings pitched. In 2017 for the club, Thompson pitched to a 9–7 record and 3.87 ERA in 26 appearances. In 2018, Thompson played in 16 games for Southern Maryland, registering a 5–4 record and 3.38 ERA with 67 strikeouts.
In 2019, he was also named pitching coach for the Blue Crabs, thus becoming a player/coach for the first time in his career.[17] In 28 starts for the club, Thompson registered a 15–8 record and 3.13 ERA with 162 strikeouts across 192+2⁄3 innings pitched. Thompson was named 2019 Atlantic League Pitcher of the Year.[18]
Thompson did not play in a game in 2020 due to the cancellation of the ALPB season because of the COVID-19 pandemic.[19] He became a free agent after the year. On April 20, 2021, Thompson returned to the Blue Crabs as a player/coach for the 2021 season.[20] Thompson had another stellar season, going 16–3 with a 3.20 ERA and 1.12 WHIP over a league-high 169 innings pitched. He was named ALPB Pitcher of the Year for the second consecutive season.[21]
On January 14, 2022, Thompson re-signed with the Blue Crabs as a player/coach for the 2022 season.[22] He started 27 games for Southern Maryland, logging a 15–4 record and 3.43 ERA with 119 strikeouts in 186+1⁄3 innings pitched. Following the regular season, Thompson was named an Atlantic League All-Star.[23] He was additionally named the ALPB Pitcher of the Year for the third consecutive season. In doing so, he also became the pitcher with the most Pitcher of the Year awards in ALPB history.[24]
On January 27, 2023, Thompson again re-signed with the Blue Crabs, returning for his 11th season with the team and fourth season as player-coach.[25] In 17 starts, he recorded a 6–3 record and 4.89 ERA with 66 strikeouts across 108+2⁄3 innings of work.
On February 22, 2024, Thompson re–signed with Southern Maryland for his 12th season with the club, and fifth year as player–coach.[26]