Jimmy Rollins drove in three runs for the Phillies and Roy Oswalt had an RBI single to go with six innings on the mound. With runners at the corners, Ryan Madson got Daniel Murphy to ground into a game-ending double play.

Antonio Bastardo (3-0) worked a hitless eighth and Madson earned his 10th save in 10 chances.

Rodriguez (1-1) took the loss.

Justin Turner had a career-high four hits for the Mets, who have dropped five of six after winning 10 of 14.

Philadelphia had lost its last four road games since a May 13 victory at Atlanta.

In Chicago, Kevin Correia pitched shutout ball into the eighth inning as Pittsburgh topped the Cubs.

Correia (7-4) limited Chicago to four singles and a pair of walks in 7 2-3 innings. He equaled Boston Red Sox pitcher Jon Lester's MLB-leading seven wins this season, and has six of the Pirates' 14 victories away from home.

Andrew McCutchen had two singles, a walk, an RBI and two stolen bases for the Pirates. He's reached base in 19 straight games against the Cubs.

Doug Davis (0-3) walked six batters and hit another during 4 2-3 innings. The Cubs committed a pair of errors in the second that led to two unearned runs, and Davis allowed four in all.

Alfonso Soriano hit his 12th homer of the season, a two-run shot off reliever Joe Beimel in the ninth, but Pittsburgh closer Joel Hanrahan came on to strike out three straight batters to remain perfect in 14 save chances this season.

1 In Washington, Michael Morse hit a home run on the first pitch in the bottom of the ninth inning to lift the Nationals to a win over San Diego, ending a five-game losing streak.

Drew Storen (3-1), who lost his first save chance of the season when Jason Bartlett homered to lead off the ninth, was the winner. He pitched 1 1-3 innings.

It was Morse's sixth homer of the year.

Mike Adams (2-1) picked up the loss. He was the Padres' third pitcher in the game.

At Atlanta, Mike Leake allowed one run in six innings and Ramon Hernandez hit a two-run homer in the ninth as Cincinnati beat the Braves for only their second win in 10 games.

Leake (4-2) gave Cincinnati its first win by a starter since May 16.

The Braves loaded the bases with two outs in the eighth before Nick Massett ended the threat on Alex Gonzalez's grounder to shortstop Paul Janish.

Tommy Hanson (5-4) gave up three runs on four hits and three walks in 4 2-3 innings.

At Milwaukee, Brandon Crawford hit a go-ahead grand slam in his first MLB game to help San Francisco end the Brewers' six-game winning streak.

Tim Lincecum (5-4) gave up three runs in seven innings.

The Giants won despite the ejection of manager Bruce Bochy, who argued a close play at home plate in the fifth inning.

With the Brewers trying to rally in the eighth, Giants catcher Eli Whiteside took a big hit from Prince Fielder but was able to stay in the game until the end of the inning and preserve the lead.

Brian Wilson pitched the ninth for his 14th save.

Shaun Marcum (6-2) took the loss.

In Houston, Juan Miranda hit two two-run homers as Arizona rallied from a 6-0 deficit to beat the Astros.

The rally matched Arizona's all-time record for a comeback, and it was Houston's biggest wasted lead of the season.

Daniel Hudson (6-5) survived the early Astros lead for his sixth victory in seven decisions. He pitched six innings, allowing eight hits and five earned runs and striking out four.

J.J. Putz pitched the ninth for his 15th consecutive save.

In Denver, Colby Rasmus drove in three runs with two triples as St. Louis kept Ubaldo Jimenez winless this season with a win over Colorado.

Rasmus, mired in a 0-for-20 slump coming in, matched his career high with four hits. He singled his first two times up, then broke a 3-3 tie in the sixth with an RBI triple off Jimenez. He added a two-run triple in the seventh.

Jake Westbrook (5-3) improved to 3-0 all-time against Colorado, giving up three earned runs on five hits over five innings.

Jimenez, last year's National League All-Star starter, fell to 0-5 and watched his ERA jump to 5.86.

At Los Angeles, pinch-hitter Dioner Navarro singled up the middle with the bases loaded in the ninth inning to lead the Dodgers past Florida.

James Loney and Andre Ethier hit home runs for the Dodgers, who improved to 4-9 in their last 13 games.

Rubby De La Rosa (1-0) pitched one inning and was credited with his first MLB win despite giving up the tying run in the eighth on Greg Dobbs' second RBI single of the game.

Clay Hensley (0-1) picked up the loss for Florida.