WASHINGTON (AP) - Roy Halladay beat the Washington Nationals for the 10th straight time, thanks to some help from Ryan Howard and Raul Ibanez.
Halladay allowed 10 hits and four runs over seven innings, striking out five without a walk. Howard and Ibanez hit back-to-back homers in the fourth and each drove in a run in Philadelphia's seventh-inning rally for a 5-4 win Monday.
Halladay (7-3) gave up solo home runs to Michael Morse, Danny Espinosa and Laynce Nix, the first time this season he's given up multiple homers in a game. Halladay had allowed a total of two home runs in his first 11 starts.
Ryan Madson pitched a perfect ninth for his 12th save in 12 chances.
Sean Burnett (0-2) was the loser.
Padres 3, Braves 2
ATLANTA (AP) - Pinch-hitter Kyle Phillips broke a 2-all tie in the 10th inning with his first career home run and San Diego won its third straight.
Phillips, a rookie with a .167 average in 30 at-bats, led off the inning and hit the second pitch from George Sherrill (1-1).
Heath Bell pitched the 10th for his 13th save in 14 opportunities. Chad Qualls (3-2) earned the victory with a scoreless ninth, giving up one walk and facing four batters.
For a fourth straight start, San Diego's Aaron Harang didn't earn a decision, but he was sharp, allowing six hits, two runs and two walks with five strikeouts.
Astros 12, Cubs 7
CHICAGO (AP) - Jeff Keppinger and J.R. Towles homered and the Houston Astros rallied to beat the Cubs.
Clint Barmes and Hunter Pence had back-to-back home runs in the fifth inning to help the Astros ended a three-game losing streak.
After blowing two leads against the Diamondbacks on Friday and Sunday, the Astros' bullpen only allowed one run over five innings. Sergio Escalona (1-0) pitched a scoreless inning.
Carlos Pena homered run for the Cubs, who committed three errors.
Towles gave the Astros the lead with a leadoff home run in the sixth inning off Cubs reliever Jeff Samardzija (3-1).
Giants 7, Cardinals 3
ST. LOUIS (AP) - Madison Bumgarner won his second straight after losing his first six decisions and Andres Torres gave the National League's worst offense a big boost with his first career grand slam in San Francisco Giants' victory over the Cardinals.
Kyle McClellan (6-2) was knocked out after four innings in the worst outing of his first season in the Cardinals' rotation. Albert Pujols hit his ninth homer and Allen Craig doubled twice with an RBI.
Cody Ross also homered for the Giants, who are last in the National League in runs even after this outburst and had been shut out twice the previous four games.
Bumgarner (2-6) scattered six hits in seven innings and struggled only in the third when he gave up three straight hits and both runs.
Reds 7, Brewers 3
CINCINNATI (AP) - Jay Bruce hit a three-run home run and Travis Wood turned in six mostly solid innings as the Reds successfully opened a 10-day, nine-game homestand after a 2-8 trip.
Bruce tripled for the first time this season and finished a double short of the cycle.
The Brewers, who went 8-1 on their last homestand, saw their road record fall to a National League-worst 8-18 (.308).
Wood (4-3) allowed three runs and seven hits.
Chris Naverson (2-4) lasted only four innings, allowing five hits and five runs with two walks and seven strikeouts.
Mets 7, Pirates 3
NEW YORK (AP) - Josh Thole hit a tiebreaking double in the seventh inning and the depleted Mets, playing with a makeshift lineup minus Jose Reyes, beat the Pittsburgh Pirates 7-3 on Monday night.
Dillon Gee (5-0) pitched seven solid innings, striking out a career-high eight in the rookie's latest impressive outing, and New York had another productive day at the plate.
Reyes was placed on the bereavement list earlier in the day and left fielder Jason Bay was given a planned day off.
Chris Snyder hit a two-run homer in the second inning for the Pirates, who dropped to 0-8 at Citi Field. He helped give back those runs, however, with a pair of passed balls in the bottom half.
Daniel McCutchen (1-1) was the loser.
Dodgers 7, Rockies 1
LOS ANGELES (AP) - James Loney had three hits with a homer and three RBIs, Andre Ethier also drove in three runs and the Los Angeles Dodgers defeated the Colorado Rockies 7-1 on Monday night.
Chad Billingsley (4-4) allowed one run and a season-high 11 hits in seven innings, struck out eight and walked two.
Ty Wigginton's homer accounted for Colorado's run as the Rockies dropped to 2-10 on the road in May.
Jason Hammel (3-5) gave up seven runs and 10 hits in 4 2-3 innings, struck out two and walked one in his shortest outing of the season.
Diamondbacks 15, Marlins 4
PHOENIX (AP) - Kelly Johnson homered twice and fell a single shy of the cycle and the steamrolling, first-place Diamondbacks won their seventh straight.
Johnson, with a double and triple, tied a franchise record with four extra-base hits.
Justin Upton tied his career best by going 5 for 5 - including a two-run homer into the upper deck - and Miguel Montero matched his career high with five RBIs, including a three-run homer, as the Diamondbacks won for the 13th time in 14 games and 15th in their last 17.
Joe Saunders (2-5) got his second straight win after opening the season 0-5. Chris Volstad (2-4) took the loss in the Marlins' most one-sided defeat of the season.