New York blew a three-run lead in the ninth, but eventually took advantage of an error that made the 13th-inning runs unearned.
David Wright then popped out to third for the second out, after which Beltran his his seventh home run of the year.
New York starter Mike Pelfry, who brought a 2-6 record into the game, allowed five hits and a run over eight innings in his bid to win for the first time in 10 starts. He gave way to Billy Wagner in the ninth, but instead of picking up his 14th save, Wagner gave up a three-run homer to Reynolds that extended the game.
The win went to Claudio Vargas (3-2), who threw a shutout inning in the 12th despite giving up two hits.