Snider was traded to the Pittsburgh Pirates in exchange for pitcher Brad Lincoln. Pittsburgh Pirates In 50 games with the Pirates to finish 2012, Snider hit .250 with a home run and 9 RBI. 2013 Snider began 2013 in a platoon in right field with José Tábata, with Garrett Jones also getting occasional starts when he wasn't at first base. The platoon dissolved when Tábata went on the disabled list with a strained oblique, and Snider got most of the starts during Tábata's stint on the DL. To that point, Snider was hitting .252 with two home runs, 14 RBI and 31 strikeouts. After hitting .171 in June, Snider was relegated to a pinch-hitting role upon Tábata's return on July 3. On July 28, Snider was placed on the disabled list with discomfort in his left big toe, which had been bothering him for over a month. Snider was activated from the disabled list when the rosters expanded on September 1, and was used in a pinch-hitting role to finish the season. In 111 games (53 starts) in 2013, Snider hit .215/.281/.333 with five home runs and 25 RBI. 2014 On June 18, 2014, Snider pitched the top of ninth inning against the Cincinnati Reds. He allowed two runs, one hit, and two walks in that inning but managed to strike out Joey Votto. Snider finished the 2014 season with a .264 average with 13 home runs and 38 RBI in 140 games. Baltimore Orioles On January 27, 2015, Snider was traded to the Baltimore Orioles in exchange for minor league pitcher Stephen Tarpley and a player to be named later, eventually revealed as minor league pitcher Steven Brault. He was designated for assignment on August 7, and released on August 15. Second stint with the Pirates On August 19, 2015, Snider signed a minor league deal to return to the Pirates. He elected free agency on October 22. Kansas City Royals On January 30, 2016, Snider signed a minor league contract with the Kansas City Royals, with an invitation to spring training. He was released on March 30, and re-signed to a minor league contract on April 1. He was released on July 30, 2016. Texas Rangers On January 6, 2017, Snider signed a minor league contract with the Texas Rangers. New York Mets On August 15, 2017, the Rangers traded Snider to the New York Mets for cash.