Upton led off the bottom of the 14th with a double. After an intentional walk and an out, Snyder -- the last position player on the Arizona bench -- was inserted as a pinch-hitter for pitcher Blaine Boyer.
He hit the second pitch he saw from Fernando Nieve (2-4), home-run distance but just foul. Three pitches later he lined a single to left center that allowed Upton to score.
Boyer (2-2), the sixth Arizona pitcher, collected the win with two innings of no-hit relief. The Diamondbacks bullpen allowed one hit over eight innings in relief of starter Dan Haren who left the game after giving up three runs on six hits and two walks while striking out eight.
New York's Angel Pagan and Arizona's Chris Young traded first-inning home runs before the Mets' Rusty Ryal gave New York a 2-1 lead with a second-inning homer. Arizona tied the score in the third when Pagan scored off Carlos Beltran's single.
Arizona took its first lead in the fourth off a Mark Reynolds home run but Rod Barajas made it a 3-3 game with a home run in the sixth.