Shortstop Ruben Tejada's error on a potential double-play ball set up the big 10th. Ryan Zimmerman hit a three-run double and Michael Morse added a two-run homer as the NL East-leading Nationals broke away.
The Mets lost for the 10th time in 11 games. A day earlier, they gave up five runs in the 12th inning and fell to the Los Angeles Dodgers 8-3.
Tom Gorzelanny (3-2) retired Jason Bay with a runner on second to end the ninth.
David Wright and Ike Davis homered for the Mets in their fourth straight defeat. Tim Byrdak (2-2) took the loss.
MARLINS 2, BRAVES 1
MIAMI (AP) — Josh Johnson pitched six scoreless innings and Emilio Bonifacio homered to lead Miami over Atlanta.
Four relievers combined to pitch the final three innings for the Marlins. Steve Cishek earned his third save to help Miami snap a five-game losing streak.
Johnson (6-7) retired his first 14 batters before Brian McCann singled in the fifth. Johnson struck out nine, allowed one hit and did not walk a batter. He threw 87 pitches before Marlins manager Ozzie Guillen pulled him as a precaution.
Carlos Lee had an RBI single in the first and Bonifacio led off the second with his first homer since Sept. 25, 2011, at Milwaukee.
Braves starter Mike Minor (5-7) allowed two runs and six hits in seven innings.
CUBS 2, PIRATES 0
PITTSBURGH (AP) — Jeff Samardzija gave up one hit over eight innings and Alfonso Soriano hit two run-scoring doubles as Chicago cooled off Pittsburgh.
Samardzija allowed only a fourth-inning infield single to Andrew McCutchen, the leading hitter in the majors with a .373 average. The ball ricocheted off Samardzija.
Soriano provided two big hits, scoring Starlin Castro both times, as Chicago ended its 28-inning scoreless streak that stretched to the second inning of last Friday's game at St. Louis.
Samardzija (7-8) struck out five and walked one in ending Pittsburgh's five-game winning streak. Carlos Marmol earned his 12th save.
Ottawa's Erik Bedard (5-11) allowed one earned run and two hits in seven innings while striking out 11. The Pirates lost for just the fifth time in their last 26 home games.
PHILLIES 7, BREWERS 6
PHILADELPHIA (AP) — Ty Wigginton hit a sacrifice fly to cap a four-run rally in the ninth inning against Francisco Rodriguez that lifted Philadelphia over Milwaukee.
The Phillies were 0-42 when trailing after eight innings before coming back against Rodriguez (2-5), who replaced John Axford of Simcoe, Ont., as the closer last week.
Ryan Howard hit a two-run single on an 0-2 pitch in the ninth and Carlos Ruiz followed with an RBI single.
Carlos Gomez hit a three-run homer and the Brewers battered two-time Cy Young Award winner Roy Halladay. He allowed six runs and eight hits in six innings in his second start since returning from a nearly two-month stint on the disabled list.
Joe Savery (1-2) pitched a scoreless ninth for the win. It was the first time in 18 tries that the Phillies won a game Savery appeared in.
Utley and Howard hit consecutive homers for the last-place Phillies.
REDS 8, ASTROS 3
HOUSTON (AP) — Ryan Ludwick and Todd Frazier had three hits and two RBIs each and Brandon Phillips also had three lead Cincinnati.
Ludwick connected on an RBI double in Cincinnati's two-run third inning and added a run with a single in the eighth. Frazier singled in a run in the first and had an RBI double in the eighth.
Phillips has 12 hits and nine RBIs in the eight games since moving to the third spot in the order when Toronto's Joey Votto went on the disabled list after arthroscopic surgery to repair his injured left knee.
The Reds, who matched their season high with 17 hits, have won five straight and six of eight since the injury to stay atop the NL Central standings.
The loss was Houston's seventh straight and the Astros have lost 10 of 11 since the All-Star break including a 1-10 road trip.
Mat Latos (8-3) allowed eight hits and two runs in five innings for the Reds.
Houston starter Wandy Rodriguez (7-9) allowed seven hits and three runs with six strikeouts in six innings.
Chris Johnson tied a career high with four hits and drove in a run for Houston.
Dodgers 5, Cardinals 3
ST. LOUIS (AP) — Chad Billingsley returned from the disabled list with a strong outing that ended a five-start losing streak and Luis Cruz hit a three-run homer as Los Angeles won its fifth straight.
Cruz, recalled July 2 to replaced injured shortstop Dee Gordon, has two career homers and 12 RBIs. Eight of his 14 hits are for extra bases. His three-run shot in the second gave the Dodgers the early jump in their eighth straight win over St. Louis dating to April 17, 2011.
Kenley Jansen struck out two in a perfect ninth for his 19th save in 24 chances.
Carlos Beltran homered for the second straight game with a two-run shot in the eighth for the Cardinals, hitting his 22nd of the year. But St. Louis was 1-for-7 with runners in scoring position.
Rookie starter Joe Kelly (1-3) allowed two earned runs and four hits in six innings.
Billingsley (5-9) allowed a run and four hits in six innings to win for the first time since June 10.
Diamondbacks 6, Rockies 3
PHOENIX (AP) — Ian Kennedy had a bases-clearing triple and scattered five hits over eight innings to lead Arizona.
Paul Goldschmidt homered and Willie Bloomquist added an RBI double for the Diamondbacks, who have won a season-high seven straight home games and five of six overall.
Josh Rutledge hit his first career home run and doubled, and Carlos Gonzalez also homered for the Rockies, losers of five of six.
Kennedy (8-8) allowed two runs and struck out seven en route to his second straight win. Kennedy has lasted eight innings in each of his past two starts, giving up three runs and 13 hits across the 16 innings.
After Mike Zagurski gave up a long home run to Gonzalez leading off the ninth and walked Michael Cuddyer, J.J. Putz entered and finished for his 18th save.
Jonathan Sanchez (0-1) allowed five runs, six hits and four walks in his first start for the Rockies. He was acquired from Kansas City on Friday.
GIANTS 7, ROCKIES 1
SAN FRANCISCO (AP) — Buster Posey hit a three-run homer and Ryan Vogelsong won for the first time in nearly a month as San Francisco opened its longest homestand of the season.
Ryan Theriot and Melky Cabrera both had three hits for the Giants, who improved to 8-2 since the All-Star break.
Vogelsong (8-4) allowed one run and four hits over seven innings. The right-hander walked three and struck out six while lowering his ERA to 2.26.
Yasmani Grandal had two hits for San Diego, which has lost five of seven games to San Francisco this season.
Clayton Richard (7-11) gave up seven runs over five innings in his shortest outing of the season for the Padres. Three of his losses have been against the Giants.
The Padres lost to the Giants for the 16th time in the past 21 games between the two clubs and lost centre-fielder Alexi Amarista to a left thumb injury.