The Boston Red Sox signed Butler as an undrafted free agent after he graduated from Arizona. Butler made his professional debut in 2009 with the Lowell Spinners of the Class A-Short SeasonNew York–Penn League being promoted to the Salem Red Sox of the Class A-AdvancedCarolina League late in the season. Then, in 2010 he topped the Red Soxminor league system with a.310 average and an.893 on-base plus slugging during stops for the Greenville Drive of the Class ASouth Atlantic League, once more Salem, and the Pawtucket Red Sox of the Class AAAInternational League. While at Salem, he led all Carolina League catchers with a.995 fielding percentage. He also threw out 35.5 percent of attempted base stealers across three different Minor League levels. He was named a SAL All-Star. Butler batted a combined.241 with 12 home runs and 71 RBIs in 2011, while playing again for Salem, the Portland Sea Dogs of the Class AAEastern League, and Pawtucket. In 2012, he divided his playing time between Portland and Pawtucket, collecting a.247 average with nine homers and 37 RBIs in 95 games. In 2013, his first full year at Triple-A, he hit.262 with a career-high 14 home runs and 45 RBIs in 84 games, leading Pawtucket with a.479 slugging percentage. In a team-high 72 games behind the plate, he threw out 25 of 82 would-be base stealers, led the International League catchers with 54 assists, and was named the PawSox team MVP. In 2014, Butler entered his sixth season in the organization as one of the five catchers on the Boston Red Sox' 40-man roster. It also marked his third Major League spring training camp with the big league team. The Red Sox promoted Butler to the major leagues on August 2, due to an injury to David Ross. On August 10, Butler made his MLB debut as the starting catcher against the Los Angeles Angels in Anaheim. He batted ninth in the lineup, catching starter Rubby De La Rosa. Butler's first MLB hit came in his fourth game, on September 10 against the Baltimore Orioles; he went 3-for-4 including two doubles. Overall, with the 2014 Red Sox, Butler hit.211 with two RBIs in seven games. He was also the recipient of the Red Sox' Lou Gorman Award. Butler was designated for assignment by the Red Sox on January 6, 2015.
Butler was traded to the Washington Nationals on January 14, 2015, in exchange for Danny Rosenbaum. Butler played the 2015 season with the Triple-A Syracuse Chiefs, batting.227 in 83 games. He elected free agency on November 6, 2015.
Second Stint with Red SOx
On January 14, 2016, Butler signed a minor league deal with the Boston Red Sox with an invitation to spring training. Butler spent the 2016 season with the Triple-A Pawtucket Red Sox, batting.308 in 48 games. In December 2016, Butler signed another minor league contract with Boston. For the 2017 season, Butler batted.259 in 73 games with Pawtucket. He elected free agency on November 6, 2017, and was re-signed to a minor league deal on January 11, 2018. Butler started the 2018 season with Pawtucket. Through early August, he had appeared in 58 Triple-A games, batting.202. On August 3, after placing catcher Blake Swihart on the disabled list, the Red Sox added Butler to their major league roster. He made his season debut with Boston on August 10, appeared in two games while going 1-for-6 at the plate, and was then designated for assignment on August 14 when Swihart returned from the disabled list. On August 15, Butler was sent outright to Triple-A Pawtucket. He elected free agency on November 2, 2018. Butler's short stint on the Red Sox's active roster during their 2018 World Series run made him eligible for a championship ring.
Post-playing career
On November 26, 2018, Butler announced his retirement and was hired as a bullpen catcher for the Arizona Diamondbacks.