In the 1995 Major League Baseball draft, Thornton was drafted by the Detroit Tigers in the 27th round but chose not sign with them. Thornton played college baseball for Grand Valley State University and was drafted by the Seattle Mariners in the first round as the 22nd overall pick in 1998 Major League Baseball draft.
Thornton played briefly (only pitched 1 inning) with the Single A Everett AquaSox in the Northwest League. In 1999 and 2000, Thornton was a starting pitcher with the Wisconsin Timber Rattlers in the Midwest League and showed improvement with his ball control and accuracy, striking out nearly 1 batter an inning. 2001 was probably Thornton's breakout year. Thornton started for San Bernardino Stampede in the California League (high-A ball) and had a 14–7 record, along with a stellar 2.52 ERA and 192 strikeouts in only 157 innings pitched.
Thornton was then promoted to AA baseball and played with the San Antonio Missions of the Texas League in 2002. Thornton, still a starting pitcher, pitched well with a 3.63 ERA and 44 strikeouts in 62 innings pitched. In 2003, Thornton was briefly sent back down to high-A ball with the Inland Empire 66ers of the California League, but was quickly promoted back up AA ball with the San Antonio Missions again. He started only 4 games, but posted an incredible 0.36 ERA, with a 3–1 record, gave up only 8 hits in 25.1 innings of work and struck out 18 batters. His performance got him promoted that same year to AAA ball with the Tacoma Rainiers in the Pacific Coast League. Thornton had a shaky start to his career in Triple-A ball, starting 2 games and posting an 0–2 record and an 8.00 ERA.
Thornton stayed with the Tacoma Rainiers in 2004 and posted a 7–5 record, along with a 5.20 ERA and 74 strikeouts in 83 innings pitched.
Thornton made his MLB debut on June 27, 2004, with the Mariners in a game against the San Diego Padres, pitching brilliantly over 4 innings, only allowing 3 hits and striking out one batter. Throughout the season, the Mariners used Thornton for mostly middle reliever duty, except for one game when Thornton started and pitched 8 innings, allowing 4 runs on 8 hits and walking and striking out 7 batters. Thornton finished the 2004 season with a 1–2 record and 4.13 ERA, striking out 30 batters in 32.2 innings of work.
In 2005, Thornton served his reliever duties, pitching in 55 games with 57 innings pitched and posting a 5.21 ERA and striking out 57.
On March 21, 2006, Thornton was traded from the Seattle Mariners to the Chicago White Sox in exchange for outfielder Joe Borchard. Under the tutelage of pitching coach Don Cooper, Thornton emerged as a dominant bullpen force. In the 2006 season, Thornton appeared in 63 games going 5–3 with a 3.33 ERA and 2 saves.
Thornton's 2007 season was a little busier before as he made 68 relief appearance with a 4–4 record and a 4.79 ERA and 2 saves.
Thornton made 74 appearances out of the bullpen in 2008 going 5–3 with a 2.67 ERA and 1 save.
Thornton made 70 appearances in 2009 going 6–3 with a 2.74 ERA and 4 saves.
Thornton was selected by the coaches' vote to the American League All-Star team in 2010, the first All-Star selection of his career. In 2010, he made 61 appearances going 5–4 with a 2.67 ERA and 8 saves.
Appearing in 62 games in 2011, Thornton went 2–5 with a 3.32 ERA and 3 saves.
2012 was somewhat unlucky for Thornton as his loss column led all relievers in baseball. He went 4–10 with a 3.46 ERA and 3 saves.
Thornton made 40 appearances for the White Sox to start the 2013 season by going 0–3 and a 3.86 ERA.
In 327 relief appearances with the White Sox spanning 299 innings, Thornton compiled with a 3.18 ERA, including a 2.55 mark in 2010. As of September 12 he led all eligible American League relievers with 12.3 strikeouts per nine innings.
From 2008–13, Thornton pitched in more games than any other left-handed reliever. He also holds the record for most holds with a single team, with 164 for the White Sox.
On July 12, 2013, Thornton was traded to the Boston Red Sox for minor league outfielder Brandon Jacobs. The Red Sox also received cash considerations. For the rest of the 2013 season with the Red Sox, Thornton's playing time was limited due to an oblique strain but made 20 appearances out of the bullpen going 0–1 with a 3.52 ERA. Overall in 2013, combined with both teams, Thornton made 60 total relief appearances going 0–4 and a 3.74 ERA. The Red Sox finished 97–65, making it to the postseason and eventually winning the World Series over the St. Louis Cardinals. Thornton, although he did not make any postseason appearances, still received his first career championship ring.
On January 10, 2014, Thornton signed a two-year contract with the New York Yankees worth $7 million. In 46 games for the Yankees, Thornton pitched to a 2.55 ERA. He was put on waivers late in the season in what General Manager Brian Cashman said was a move for "roster flexibility".
In 2014, Thornton reached second on the all-time list for holds in Major League Baseball, trailing only Arthur Rhodes.
Thornton was claimed by the Washington Nationals after being waived by the Yankees in August, 2014. He pitched in 18 games for Washington down the stretch and 3 games in the 2014 National League Division Series against the San Francisco Giants. Thornton made 60 appearances for Washington in 2015, compiling a 2.18 ERA with 23 strike-outs in 41 1⁄3 innings. Since 2005, Thornton had recorded the most innings of any left-handed reliever.
In 2016, Thornton signed a minor league deal with the San Diego Padres with an invitation to Spring training.
On November 8, 2016, Thornton announced his retirement from professional baseball.
Since transitioning to the bullpen with the White Sox, Thornton has scrapped his secondary pitches and now relies heavily on a mid- to upper-90s four-seam fastball. In 2010, Thornton has thrown the fastball over 90% of the time. He also occasionally throws a slider, which he uses most effectively against right-handed batters. His fastball command is considered excellent.