Published: Aug 04, 2010 5:17 AM EDT
Updated: Aug 04, 2010 4:31 AM EDT

MIAMI (AP) — Roy Halladay made a triumphant return to the scene of his perfect game, allowing one run in seven innings as Philadelphia beat Florida 6-1 on Tuesday.

Halladay (13-8) threw the second perfect game in Phillies history on his last visit to Miami on May 29. This time the Marlins managed five hits against the right-hander, who struck out nine and lowered his ERA to 2.17.

Halladay hit a two-run single in the fourth. He improved to 3-1 in four starts against Florida this year with an ERA of 1.13.

Ben Francisco and Carlos Ruiz homered on consecutive pitches in the second inning. Francisco finished with three of the Phils' 13 hits, and Ruiz had four.

Dan Uggla hit his 24th homer leading off the second for the Marlins.

Florida's Sean West (0-1), making his first start of the season, went five innings and allowed five runs, four earned.

Mets 3, Braves 2

At Atlanta, Jeff Francoeur hit a go-ahead solo home run in the ninth inning off Atlanta closer Billy Wagner as New York snapped a two-game losing streak.

The Braves have lost three of four and now lead second-place Philadelphia by two games in the National League East. Atlanta's 35-14 record at home, where they had won 25 of 32, leads the majors.

Reliever Manny Acosta (2-1) earned the win for New York after allowing one hit and three walks in 1 2-3 innings.

Mets closer Francisco Rodriguez pitched a scoreless ninth to earn his 23rd save.

Wagner (5-2) gave up one hit and one run with one strikeout.

Giants 10, Rockies 0

At Denver, Jonathan Sanchez limited Colorado to three hits over six innings as surging San Francisco won its fourth straight game in a blowout.

After five straight no-decisions, Sanchez (8-6) won for the first time since July 5 and equaled his 2009 victory total. Sanchez struck out seven straight batters at one point and finished with nine strikeouts before leaving after a leadoff walk in the seventh.

The Giants, who have won 21 of their past 26, had a four-run first inning against Aaron Cook (4-8), who lasted three innings and allowed eight hits and five runs. In his past three starts, Cook is 0-3 with a 13.97 ERA.

The Giants matched their season-high with 19 hits, the most allowed by the Rockies this season.

Taylor Buchholz relieved Cook and gave up a run-scoring single to Buster Posey in the fifth and a solo homer to Freddy Sanchez in the sixth. Posey, who is hitting .356 since being recalled May 29, went 3 for 5. He and Pat Burrell each had two RBIs.

Astros 18, Cardinals 4

At St. Louis, Houston's Bud Norris won his fourth game this season in a route over St. Louis.

Houston had a five-run second against rookie Jaime Garcia (9-5) and scored four in the sixth, seventh and eighth against the St. Louis bullpen. The Astros were 13 for 19 with runners in scoring position. They missed the franchise record for runs by one and had a season-best 22 hits.

Norris (4-7) is 5-1 with a 2.27 ERA in six career starts against the Cardinals and had allowed only one run in 20 innings his first three career appearances in St. Louis, all victories.

Colby Rasmus and Matt Holliday homered for the Cardinals, who will try to avoid getting swept by Houston for the second time at home this season behind 11-game winner Chris Carpenter on Wednesday night. The Astros have won five straight in St. Louis, and have outscored the opposition 57-12 during their longest winning streak since an eight-gamer from Aug. 27-Sept. 3, 2008.

Diamondbacks 6, Nationals 1

At Phoenix, Mark Reynolds hit a three-run homer in the fourth inning in a victory over Washington before being forced to leave the game after he was hit in the head by a pitch.

Reynolds was hit near the front of the helmet by a pitch from reliever Collin Balester and had to leave the game. Reynolds remained on the dirt near home plate momentarily after manager Kirk Gibson and training staff rushed out to aid him. He popped back up on his feet, but was removed for a pinch-runner.

Reynolds, who turned 27 on Tuesday, hit a towering drive over the right-center field wall in one of the deepest parts of Chase Field to give Arizona a 4-1 lead against Scott Olsen (3-3).

Joe Saunders (7-10) threw a five-hitter in his second straight start as a Diamondback after being traded from the Los Angeles Angels on July 25.

Pirates 7, Reds 6

At Pittsburgh, rookie Neil Walker had three hits and drove in a career-high four runs as last-place Pittsburgh held off first-place Cincinnati to snap a five-game losing streak.

Walker had a three-run double as part of a six-run second inning for Pittsburgh, which also got two hits and two runs from Jose Tabata. The Pirates had a scare when outfielder Andrew McCutchen left the game after he was hit by a pitch in the back of the neck.

Brandon Phillips went 3 for 5 with two RBIs and Chris Heisey had two RBI singles for the Reds, who came in having won three straight and five of six. Cincinnati remained in first place in the NL Central because St. Louis lost to Houston.

Mike Leake (7-3) was charged with seven runs and seven hits with a walk and two strikeouts in five innings for his second consecutive defeat.

Cincinnati nearly erased a 7-1 deficit with two runs in the sixth and another in the seventh off Paul Maholm (7-9). But new Pirates closer Joel Hanrahan earned his first save since May 24, 2009, when he was with Washington, by striking out two after allowing Scott Rolen's leadoff single in the ninth.

Brewers 4, Cubs 3

At Chicago, Chris Narveson pitched 5 2-3 effective innings and also singled in a run as Milwaukee extended Chicago's losing streak to seven games.

Ryan Braun, who had five hits in Milwaukee's 18-1 victory the previous night, added three more singles. Prince Fielder followed his five-hit, five-RBI game with two singles and an RBI. And Casey McGehee, who drove in four runs Monday, had two more RBIs.

Thomas Diamond (0-1) struck out 10 over six innings in his major league debut but couldn't prevent the Cubs (46-61) from falling 15 games under .500 for the first time since they ended 2006 at 66-96.

Narveson (9-7) allowed one run and six hits. The left-hander walked one and struck out six, looking nothing like the battered hurler who had an 8.17 ERA in July.

Dodgers 2, Padres 1

At Los Angeles, Ted Lilly outpitched Mat Latos with seven superb innings in his first start for the team that drafted him 14 years ago as Los Angeles snapped a six-game losing streak with a victory over San Diego.

Lilly (3-9) allowed two hits, struck out five, walked none and retired his final 20 batters before he was lifted for a pinch-hitter after 87 pitches. The 34-year-old left-hander was obtained on Saturday from the Cubs with infielder Ryan Theriot in a deal that sent second baseman Blake DeWitt and two minor leaguers to Chicago.

The only run off Lilly came with one out in the first when Miguel Tejada hit his eighth homer of the season and first since joining the Padres last Thursday in a trade with Baltimore.

Jonathan Broxton pitched a scoreless ninth for his 21st save.

Latos (11-5) allowed two runs and four hits over six innings and struck out six on the way to his first loss since June 4.