On September 1, 2013, Murphy was called up to the Yankees when rosters were expanded, pinch-hitting a single in his first major league at-bat on September 2, 2013, against the Chicago White Sox. He made his first major league start on September 14. He was behind the plate during Mariano Rivera's last game at Yankee Stadium. Murphy competed with Francisco Cervelli and Austin Romine to be the backup catcher for the Yankees in spring training in 2014. Cervelli won the job, and Murphy was optioned to the minor leagues. Cervelli suffered a hamstring injury on April 13, and was placed on the 60-day disabled list, resulting in the Yankees calling up Murphy to replace Cervelli as the backup catcher. On April 26, 2014, Murphy hit his first career home run against the Los Angeles Angels of Anaheim in Yankee Stadium and also notched his very first multi-RBI game by driving in a total of three runs. Murphy remained with the Yankees until June 17, when Cervelli was activated from the disabled list and Murphy was optioned back down to Scranton/Wilkes-Barre. The Yankees traded Cervelli in the 2014–15 offseason, and Murphy competed with Romine in spring training to be McCann's backup for the 2015 season. Murphy won the competition, and Romine was designated for assignment. On July 23, 2015, Murphy hit singles off both the second-base and third-base bags. On July 25, Murphy hit a game winning three run home run against Glen Perkins of the Minnesota Twins to finish off a comeback win from 5–0 at Target Field in Minneapolis, his second career home run. Murphy finished the 2015 season with a.277 batting average and three home runs in 172 plate appearances.
Minnesota Twins
The Yankees traded Murphy to the Minnesota Twins for Aaron Hicks on November 11, 2015. Murphy started the 2016 season as the backup catcher to Kurt Suzuki. On May 6, 2016, after beginning the season 3-for-40, the Twins optioned Murphy to the Rochester Red Wings of the International League. He spent most of the season in Rochester, ending the year with a.146 average in 26 major league games. He returned to Rochester to start the 2017 season after losing the backup catching job to veteran Chris Gimenez. With Rochester, Murphy batted.222 in 59 games.
Arizona Diamondbacks
On July 27, 2017, the Twins traded Murphy to the Arizona Diamondbacks for minor league pitcher Gabriel Moya. The Diamondbacks assigned Murphy to the Reno Aces of the Class AAA Pacific Coast League, and promoted him to the major leagues on September 1. Murphy made the Diamondbacks' Opening Day roster in 2018 as the third catcher, serving with Alex Avila and Jeff Mathis. Murphy played in 87 games, hitting a career high nine home runs with 24 RBIs. On April 30, 2019, Murphy struck out against CC Sabathia for Sabathia's 3,000 strikeout. On May 25, 2019, the Diamondbacks designated Murphy for assignment. Murphy cleared waivers and was outrighted to Reno on June 1.
Atlanta Braves
On July 31, 2019, the Diamondbacks traded Murphy to the Atlanta Braves for cash considerations. They assigned him to the Gwinnett Stripers of the International League. On September 17, the Braves selected Murphy's contract, promoting him to the major leagues. Murphy was non-tendered on December 2, 2019, and became a free agent.
Pittsburgh Pirates
On January 10, 2020, Murphy signed a minor league deal with the Pittsburgh Pirates. On July 20, 2020, Murphy had his contract selected to the 40-man roster.