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 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. 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. 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. Other results: Brewers 4, Cubs 3; Dodgers 2, Padres 1.