The Rockies invited Butler to spring training in 2014.[12] They assigned him to Tulsa to start the 2014 season,[13] and he started Tulsa's season opener.[14] After he pitched to a 2.49 ERA with 40 strikeouts and 19 walks in 68+2⁄3innings pitched, the Rockies promoted Butler to the major leagues for his debut on June 6.[15] He recorded a loss in his first start, pitching 51⁄3innings and giving up 6 runs on 10 hits.[16] He was placed on the disabled-list before his next scheduled start with right shoulder inflammation, and he was replaced by Tyler Matzek, who would be the third starting pitcher to debut for the Rockies in six days, along with Butler and Christian Bergman.[17]
Butler won the fifth starter's spot out of Spring Training in 2015. Butler struggled mightily at the beginning, inducing 30 walks while striking out just 29 in 54+1⁄3 innings. He was demoted at the end of May to the Triple-A Albuquerque Isotopes. Butler was once again called up, he finished the season with a 3–10 record along with an ERA of 5.90 in 16 games started.[18] He also had his first complete game of his career.[19] Right-handed batters had a higher batting average against him, .340, than against all other MLB pitchers in 30 or more innings.[20]
On February 1, 2017, Butler was traded to the Chicago Cubs in exchange for James Farris.[23] He made his Cubs debut on May 12 and pitched 6 shutout innings in a 3–2 victory over the Cardinals.[24] Butler spent time in the Cubs' rotation and with the Triple-A Iowa Cubs, appearing in 13 games for Chicago, 11 of them starts. In 54+2⁄3 innings, Butler was 4–3 with a 3.95 ERA and 30 strikeouts. The following season, Butler began the season in the Cubs' bullpen before being placed on the 60-day disabled list with a right groin strain on June 11, 2018.
Texas Rangers
On July 27, 2018, Butler (along with Rollie Lacy and Alexander Ovalles) was traded to the Texas Rangers in exchange for Cole Hamels.[25] In 22 appearances, he pitched to a 6.47 ERA in 32 innings while going 2-for-2 in save opportunities. Butler elected free agency on November 21.
NC Dinos
On December 3, 2018, Butler signed a one-year, $800,000 contract with the NC Dinos of the KBO League.[26] He was waived on July 3, 2019, after pitching to a 3–6 record with a 4.76 ERA and 49 strikeouts in 13 starts.[27]
Chicago Dogs
On June 17, 2020, Butler signed with the Chicago Dogs of the American Association of Independent Professional Baseball. In 12 games (11 starts) for the Dogs, he struggled to an 0-7 record and 5.65 ERA with 40 strikeouts across 65+1⁄3 innings pitched. On November 12, Butler was released by Chicago.
On January 27, 2023, Butler was traded to the Charleston Dirty Birds of the Atlantic League of Professional Baseball in exchange for infielder Jose Rosario.[32] In 3 starts, he struggled to a 9.82 ERA with 8 strikeouts in 11 innings of work. On July 25, Butler was released by Charleston.[33]