MIAMI – For Roy Halladay, less than perfect can still be awfully good.
The Philadelphia Phillies ace made a triumphant return to the scene of his perfect game, allowing one run in seven innings Tuesday night to beat the Florida Marlins 6-1.
Halladay (13-8) threw the second perfect game in Phillies history when he won May 29 on his last visit to Miami. 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 3-1 in four starts against Florida this year with an ERA of 1.13.
Injury-plagued Philadelphia played without slugger Ryan Howard, who before the game went on the 15-day disabled list because of a sprained left ankle. Jayson Werth replaced Howard in the cleanup spot and went 0 for 5 with four strikeouts.
Even with the injuries, the Phils are surging, winning 10 of their past 12 games to tighten the NL East race.
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.
Halladay's streak of consecutive batters retired in Miami this season reached 30 before Dan Uggla hit his 24th homer leading off the second inning. Uggla made two misplays at second base that led to two runs.
Florida's Sean West (0-1), making his first start of the season, went five innings and allowed five runs, four earned.
The crowd was announced at 19,378, and many fans wore Phillies hats.
The only time Florida's first two batters reached was in the seventh. Halladay then got Ronny Paulino to hit into a double play, and when Hector Luna flied out to end the inning, Halladay pounded his glove once in satisfaction as he walked to the dugout.
He departed after throwing 109 pitches. Chad Durbin pitched two innings to complete the eight-hitter.
Wobbly defense — a problem for the Marlins all season — hurt them in the fourth inning. Francisco singled off the glove of third baseman Luna, then took third when center fielder Cody Ross misplayed Ruiz's deep fly into a double. An intentional walk to Wilson Valdez loaded the bases with two outs, and Halladay followed with a two-run single off the glove of a diving Luna.
Halladay came into the game with only one RBI in 61 at-bats this season.
An error by Uggla helped the Phils score an unearned run in the fifth, which came home on Ruiz's two-out single. Uggla mishandled a potential inning-ending double play grounder in the seventh, and the Phils went on to score on an RBI single by Valdez.
Notes: The Marlins designated RHP Jorge Sosa for assignment. ... Halladay has pitched at least six innings in 50 consecutive road starts. ... Werth is 0 for 20 in his past six games in Miami.