With the Nationals trailing 7-6, Jesus Flores singled off Bobby Parnell (3-5) to begin the ninth-inning rally, and pinch-runner Brian Bixler moved to second on a wild pitch before Johnny Gomes walked and Ian Desmond laid down a sacrifice bunt.
With one out, the Mets rolled the dice by intentionally walking Roger Bernadina to load the bases for Zimmerman, who shattered his bat on an up-and- in fastball. The ball fell into shallow right field, giving the Nats the walkoff victory.
"The guys battled their butts off and came back, so to go out there and do that, it's disheartening, so I have to step it up and come back out tomorrow," Parnell said.
Sean Burnett (5-5) worked the top of the ninth to earn the win and Bernadina, Desmond and starting pitcher Tom Milone all cracked home runs for the Nationals, who bounced back after dropping the series opener on Friday.
Milone was called up from Triple-A Syracuse to make his major league debut and lasted 4 1/3 innings, giving up four runs on six hits while fanning two.
Incredibly, Milone hit a three-run homer off Mets starter Dillon Gee on the first pitch he saw in his first major league at-bat in the second inning.
"It was almost like I didn't feel it come off the bat," Milone said of his home run swing. "I wasn't really sure if it was a home run yet, but once it kept traveling in the air as I was running down the line I kind of knew it. It was definitely a good feeling."
The Nats got on the board in their first at-bat courtesy of a leadoff home run from Desmond, his sixth homer of the season.
Washington added four runs in the second to jump out to a 5-0 lead. With one out, Danny Espinosa was plunked by Gee and Chris Marrero slapped a single to right to put two runners on base. Flores then ripped an RBI double into left field, scoring Espinosa.
The rest of the offense came from an unlikely source, as Milone followed by driving a fastball from Gee over the wall in right field for a 5-0 lead.
New York struck for four runs in the fourth to pull within one. Justin Turner singled to lead off the frame and David Wright clubbed a ground-rule double two batters later. Pagan drove home both runners with a single to right and Evans then cranked a two-run homer to make it 5-4.
Washington took a two-run lead in the fifth when Bernadina crushed an offering from Gee into the seats in left for his sixth homer of the year.
The Mets tied it up in the sixth when Pagan singled to left and Bay followed by crushing a fastball from Tom Gorzelanny for his 10th home run of the season.
In the seventh, pinch-hitter Willie Harris worked a leadoff walk, moved to second on a sacrifice fly by Jose Reyes and advanced to third on a single by Turner. Harris then trotted home on a sacrifice fly to right by Lucas Duda to give the Mets a 7-6 advantage.
Washington threatened to tie the game in the home eighth when Jayson Werth walked, stole second and moved to third when the throw down to second got away from Turner. The Nats were unable to cash in, though, as Manny Acosta struck out Marrero to end the inning.
In addition to selecting Milone's contract from Triple-A Syracuse, the Nationals also activated catcher Ivan Rodriguez from the 15-day disabled list and transferred first baseman Adam LaRoche to the 60-day DL. Rodriguez grounded into an inning-ending double play in the sixth as a pinch hitter...Bay broke an 0-for-35 road slump with his home run in the sixth...Gee gave up six runs on eight hits over five innings while striking out six and walking one.