Pittsburgh faced a 3-1 deficit going into the seventh, but came up with a big inning against Anibal Sanchez. It was the first appearance for Sanchez since he came within two outs of what would have been his second career no-hitter last Friday.
Garrett Jones reached on a one-out single to start the Pirates' outburst and Russell Martin drew a walk. Both runners scored on a double by Pedro Alvarez, who then came in with the go-ahead run on Snider's two-base hit.
Snider took third on a wild pitch and scored the final run of the inning on a squeeze bunt from Jordy Mercer.
Sanchez (5-5) allowed all five runs on seven hits with nine strikeouts in 6 2/3 innings to take the loss.
Lytro unveils camera that can focus a photo after shooting it
'How to Train Your Dragon 2' releases 5-minute clip