PHILADELPHIA -- Even on a soggy night, Roy Halladay made it look easy.
Halladay pitched eight strong innings in his home debut, Chase Utley hit his fifth homer in four games and the Philadelphia Phillies held on for an 8-6 victory over the Florida Marlins on Friday night.
Pitching in a steady rain, Halladay (3-0) shrugged off the conditions and allowed two runs and eight hits. He threw 100 pitches, struck out four and didn't walk a batter.
"I think you go out and do the same things," Halladay said. "There's not a lot you can do to change anything. My approach is the same."
Florida took advantage of three infield hits to score four runs off David Herndon in the ninth before Ryan Madson got the last two outs for his third save in three tries. Madson retired Cantu on a fielder's choice grounder with two runners on to end it.
Acquired from Toronto in a blockbuster deal last December, Halladay tossed a seven-hit shutout against Houston last Sunday. The former AL Cy Young winner has a 1.13 ERA in three starts.
"He pitches ahead, throws strikes with command and is in control of his emotions," Marlins manager Fredi Gonzalez said. "He's really good."
Utley has connected in four straight games and has six homers this season. Placido Polanco also went deep for Philadelphia.
Marlins starter Anibal Sanchez (0-1) struggled through six innings, allowing one run and eight hits.
A crowd of 45,245 -- the 46th consecutive sellout at Citizens Bank Park -- turned out on a dreary night, mostly to watch Halladay pitch his first game in red pinstripes. Many were forced to stand on the concourse because of the driving rain.
Though the game was never stopped, there were a couple long delays between innings while the grounds crew worked on the field.
If it weren't for the rain, Phillies manager Charlie Manuel said he would've sent Halladay out for the ninth.
"He does a tremendous job and he has a knack for closing out innings with a short amount of pitches," Manuel said.
Halladay, who has 50 career complete games, didn't protest much when Manuel pulled him.
"I go out until they tell me I'm done," he said. "You can't finish them all."
The two-time defending NL champion Phillies are off to an 8-2 start.
Wildness cost Sanchez in the first inning. Shane Victorino and Utley reached on walks before Ryan Howard beat the shift with an opposite-field single that drove in the first run. After Raul Ibanez walked to load the bases, Juan Castro and Carlos Ruiz hit consecutive RBI singles to make it 3-0.
Polanco hit a drive off the left-field foul pole for a 4-0 lead in the second. Castro's sacrifice fly in the third made it 5-0. Utley drove one out to right in the seventh off left-hander Dan Meyer.
Both teams made excellent defensive plays in the outfield. Ibanez robbed John Baker of extra bases with a diving grab in left to start the sixth.
In the bottom half, Marlins Cameron Maybin made a diving catch on the warning track in right-center.
Phillies RHP Joe Blanton is scheduled to make his first rehab start on Tuesday. Blanton has been sidelined with an oblique injury. ... The Marlins outrighted RHP Jose Veras to Triple-A New Orleans. He was designated for assignment on Wednesday. ... Marlins RHP Brian Sanches, who has an injured hamstring, will make a rehab appearance at Class A Jupiter on Monday. ... The Phillies are averaging 7.7 runs per game. ... The Marlins had won nine of their last 11 games in Philadelphia. ... Halladay, an .079 career hitter coming in, has one hit in each start. ... Cantu has a 15-game hitting streak, dating to last season.
Brown's homer sends A's to 4-2 victory over skidding Angels
— The Oakland Athletics haven't shown much power at the plate the first quarter of the season. Yet it was the long ball that played a big role in their victory Friday night.
San Diego Padres and San Francisco Giants meet in game 2 of series
San Diego Padres (25-14, second in the NL West) vs. San Francisco Giants (22-16, third in the NL West)
Toronto Blue Jays and Cincinnati Reds play in game 2 of series
Cincinnati Reds (11-27, fifth in the NL Central) vs. Toronto Blue Jays (21-18, third in the AL East)
Diamondbacks play the Cubs after Rojas' 3-home run game
Arizona Diamondbacks (20-21, fourth in the NL West) vs. Chicago Cubs (15-23, fourth in the NL Central)
Athletics bring road win streak into matchup with the Angels
Oakland Athletics (17-24, fifth in the AL West) vs. Los Angeles Angels (24-17, second in the AL West)
White Sox visit the Yankees to begin 3-game series
Chicago White Sox (19-19, second in the AL Central) vs. New York Yankees (28-10, first in the AL East)