Chase Utley hit a three-run homer and drove in four, Roy Halladay tossed six effective innings and the Philadelphia Phillies beat the Miami Marlins 6-4 on Tuesday night.
Halladay (4-4) allowed one run and four hits in his fifth start after returning from right shoulder surgery. The two-time Cy Young Award winner didn't top 88 mph and relied on guile to get outs.
The top three hitters in Philadelphia's lineup -- Cesar Hernandez, Jimmy Rollins and Utley -- were 8 for 12 with four RBIs and six runs.
Jonathan Papelbon allowed an RBI single to Giancarlo Stanton before finishing for his 28th save in 35 chances.
Marlins starter Brian Flynn (0-2) gave up six runs and 11 hits in six innings.
Juan Pierre, pinch-hitting for Flynn in the seventh, hit a double to right for his 2,215th career hit, tying him with Hall of Famer Joe DiMaggio for 175th on the all-time list.
The going-nowhere Phillies improved to 18-13 since interim manager Ryne Sandberg replaced Charlie Manuel on Aug. 16. They have won seven straight over the last-place Marlins.
Utley hit an RBI single in the first and Carlos Ruiz followed with a two-run single for a 3-0 lead.
Utley connected off Flynn in the fifth, driving one off the facing of the second deck in right field for his second three-run shot in two games. He has eight RBIs in the last two nights.
Halladay improved to 114-0 when he's given a four-run lead, the longest streak since Pedro Martinez retired at 114-0 in similar situations.
The Marlins got two runs off B.J. Rosenberg in the eighth. Justin Ruggiano doubled one in and scored on Adeiny Hechavarria's single.
The Phillies are 71-80 with 11 games remaining in a season that was over a long time ago. Last year, they were 77-74 with 11 games left and only trailed St. Louis for the second wild-card spot by three games. They went 4-7 the rest of the way, finished 81-81 and snapped a string of five straight NL East titles.