On June 14, 2011, Stewart was called up from the Double-A New Hampshire Fisher Cats to replace Kyle Drabek, who was optioned to the Triple-A Las Vegas 51s. He made his career debut on June 16, 2011, against the Baltimore Orioles, pitching 7 innings, giving up 7 hits, 2 earned runs, 1 walk and 4 strikeouts.[6] After making 3 starts, Stewart was optioned back to Double-A New Hampshire on June 28, 2011.[7]
Chicago White Sox
On July 27, 2011, Stewart was traded to the Chicago White Sox with Jason Frasor for Edwin Jackson and Mark Teahen.[8] Stewart was called up to the White Sox on August 6, 2011, and earned his first MLB victory going 6.1 innings giving up 1 run on 8 hits striking out 2 in a 6–1 victory over the Minnesota Twins.
On September 5, 2011, Stewart threw 7 perfect innings before giving up a hit to Minnesota Twins infielder Danny Valencia. Stewart then went on to retire the next six batters as the White Sox swept a double header winning 4–0.
On November 28, 2012, the Pittsburgh Pirates announced that they had acquired Stewart from the Red Sox in exchange for a player to be named later.[14] The Pirates sent pitcher Kyle Kaminska to the Red Sox to complete the trade.[15] The Pirates designated Stewart for assignment on January 17, 2013.[16]
Stewart was traded to the Atlanta Braves on March 10, 2014, in exchange for cash considerations.[18] he started the 2014 season with the Triple-A Gwinnett Braves.
On June 10, 2015, Stewart signed a contract with the NC Dinos.[20]
Baltimore Orioles
On January 6, 2017, Stewart signed a minor league contract with the Baltimore Orioles.[21] In 7 games (3 starts) for the Triple–A Norfolk Tides, he struggled to an 0–3 record and 7.41 ERA with 13 strikeouts across 17 innings pitched. On May 3, Stewart was released by the Orioles organization.[22]
On July 5, 2018, Stewart signed a minor league contract with the Toronto Blue Jays.[24] In 14 games for the Triple–A Buffalo Bisons, he recorded a 4.98 ERA with 19 strikeouts across 34+1⁄3 innings pitched. Stewart elected free agency following the season on November 2.[25]