In the right-hander's past five starts, the Nationals have scored four or more four times and he's won each time.
Steve Lombardozzi added a two-run double as Washington handed a sixth straight loss to the Mets, who held a team meeting before the game.
Zimmermann (7-6) won his fourth straight, allowing just four hits in six innings, striking out four and walking none.
"He's pitched well enough to be 12-2," manager Davey Johnson said.
Zimmermann reduced his ERA to 2.35, and he began the game with the National League's fourth-best average.
"It's a well-kept secret," Johnson said.
He's pitched at least six innings in all 19 of his starts, and Johnson cut him off after 95 pitches.
"I want to go six, seven, eight innings every time out," Zimmermann said. "The longer you stay in, the better chance you have of winning the games."
Perhaps later in the season, Johnson will let him go longer.
"He's a man out there," Johnson. "There's no muss, no fuss. Here -- hit it."
Sean Burnett worked a scoreless eighth, but Tyler Clippard, who blew his third save Tuesday, allowed two home runs in the ninth to David Wright and Jason Bay. Clippard then struck out Jordany Valdespin for his 15th save in 18 chances.
"I wanted to stay aggressive. I didn't want to walk anybody or allow anybody on base -- stay away from the big inning. Got a couple of bad pitches out over the plate to some good hitters -- and they got me," Clippard said.
LaRoche hit a 1-2 pitch from Chris Young (2-4) into the left-center field stands for his 16th home run in the sixth. It was his third home run in 11 at-bats against Young. Eight of LaRoche's 16 homers have been two-run shots.
"There's no satisfaction tonight. We need to win and we lost the game. There's no feel-good about tonight. I made the mistake that cost us," Young said.
Lombardozzi's two-out double in the seventh against Miguel Batista made it 4-1.
Wright led off the ninth with his 12th home run of the year, and after Clippard struck out Ike Davis and Duda, Bay hit his fifth home run -- striking the foul pole in left field. Both were on the first pitch.
Mets manager Terry Collins said his team's spirits were good.
"There are no saviors. Just continue to battle and battle, get out of this and go win six in a row. That's the only way you can play. We have a great clubhouse. Watch each other's backs and continue to move forward," Collins said.
On Thursday afternoon, R.A. Dickey (12-1) will pitch for the Mets.
"I'm sure R.A.'s going to give us a good game tomorrow because that's what's going to crack this thing. This game, as you can see by what they do, is on the mound. If we continue to pitch, we'll win our games," Collins said.
Bryce Harper had an eventful night with two singles and also caught a long fly ball hit by Duda in left-center in the second after an extended run. In the fourth, Harper singled, and when Ryan Zimmerman flied to center, he ran and was about 30 feet past second when he fell down and was easily doubled off first.
Wright had three hits. He's now reached base in 81 of New York's 87 games.
Washington RHP Drew Storen will probably be activated Thursday, Johnson said. Storen has yet to pitch this season due to elbow surgery. ... Nationals C Jhonatan Solano is probably headed to the 15-day disabled list with an oblique strain. He's likely to be replaced by Sandy Leon, who's at Double-A Harrisburg. ... Washington OF Jayson Werth, who's on the DL with a broken wrist, took batting practice on Wednesday and launched seven straight home runs. Johnson said he'll be sent out on a rehab assignment on Thursday. ... Duda returned to the lineup after missing three games with a left hamstring injury. ... New York RHP Jon Rauch had his knees drained on Tuesday, but pitched the eighth. ... Dickey (12-1, 2.66) will pitch against Nationals LHP Gio Gonzalez (12-4, 3.93) on Thursday afternoon.