MIAMI - Marcell Ozuna watched his third double of the night bounce off the wall in left-centre, and only one thought was going through his head.

"Go, go, go, go, go home," Ozuna said.

Giancarlo Stanton had the same mindset.

Stanton never broke stride and scored from first on Ozuna's gamewinning hit in the ninth inning, and the Miami Marlins stayed hot by downing the Philadelphia Phillies 4-3 on Friday night — improving to 8-1 since the dreadful 3-11 start.

Stanton led off the ninth with a full-count walk off Ken Giles (1-1), and Ozuna followed with the hit that capped his first 4-for-4 game.

"It continues to show the character of this team," Marlins manager Mike Redmond said. "Things don't go our way, but we keep battling."

Dee Gordon had three more hits and raised his average to .423 for the Marlins.

Steve Cishek (1-1) gave up a two-out triple in the ninth to Cody Asche, but escaped by getting Carlos Ruiz to ground out and keep the game tied.

Two batters later, it was over.

"We couldn't get that big hit until the end," Redmond said.

Chase Utley hit a three-run homer for the Phillies, who have lost four straight.

"Walks have come back to haunt us, that's been the story the last four or five games," Phillies manager Ryne Sandberg said. "Can't end up walking anybody, they end up scoring each time and again tonight. Two of the walks were runs. We've been having problems with that."

It was milestone night for Philadelphia. Ryan Howard played at first base for the 1,299th game, breaking the team mark held by Fred Luderus. And Utley appeared in his 1,500th game, one shy of tying Granny Hamner for No. 10 on the Phillies' all-time list.

Howard made a big play at first on his big night, diving left to snare a throw from Utley while keeping his right foot on the bag to complete a 5-4-3 double play after Miami loaded the bases — but came up scoreless — in the sixth.

Miami starter Tom Koehler faced the minimum nine batters through three innings, then faced all nine again in the fourth — and was fortunate he didn't see more. Utley's third home run of the season gave Philadelphia a 3-1 lead and the Phillies had the bases loaded later in the inning.

But Koehler fanned Freddy Galvis on a breaking ball that catcher J.T. Realmuto blocked in the dirt. And after Koehler's first pitch to Phillies' starter Jerome Williams skipped off Realmuto's glove to the wall, Realmuto got it back to Koehler in time to tag Howard — trying to score from third — and end the inning.

The Phillies didn't like the call, but it was upheld after review.

"I pulled my hand back and he just went straight down," Howard said. "I didn't feel anything."

Koehler and Williams both allowed three runs in five innings.

TRAINER'S ROOM

Phillies: RHP Chad Billingsley (right elbow) seems in line for a long-awaited return to the majors next week. He threw 99 pitches in a rehab start at Triple-A Lehigh Valley on Thursday. He hasn't pitched in the majors since April 15, 2013.

Marlins: RHP Jose Fernandez (right elbow) threw 15 pitches in a batting practice session Thursday, with no problems. ... RHP Henderson Alvarez (right shoulder) is targeting a May 17 return. ... RHP Mat Latos (left hamstring) had an MRI to rule out any major issues after getting hurt Wednesday, and the Marlins aren't sure if he'll make his next start. ... OF Christian Yelich (back strain) is expected to start a rehab assignment Sunday.

CHILLY PHILLY

The 3-4-5 hitters in the Phillies' lineup — Utley, Howard and Grady Sizemore — came in hitting a combined .153. Utley's three-run homer snapped an 8-for-71 start to his season.

GORDON RARITY

Gordon was intentionally walked in the sixth inning. It was only the third intentional pass of his career (the other two came in 2013, one of by Marlins ace Jose Fernandez).

UP NEXT

LHP Cole Hamels (1-2, 3.19) goes for the Phillies on Saturday against Miami RHP Dan Haren (2-1, 3.38). Hamels is 9-14 all-time against Miami. Haren is 1-6 in 11 starts against Philadelphia.