Eickhoff allowed two hits, struck out six and walked one. It was the right-hander's second start and third appearance of the season after making just one start in 2018 due to a right hand injury that was a struggle to diagnose.

"It just makes everything a little sweeter now," Eickhoff said. "That's what I've learned from this whole experience. The perspective from everything has changed quite a bit. I'm just pitching for these guys."

Eickhoff (1-1) finally was treated for carpal tunnel syndrome, including surgery after last season, and is slowly beginning to regain his form. He was sharp in spring training and returned to Philadelphia's rotation on Sunday at Colorado, allowing four runs in six innings.

The performance against lowly Miami was his first win since Aug. 25, 2017, and his longest outing since going seven innings on April 10, 2017.

"He's gone through some adversity and has had to endure some moments," manager Gabe Kapler said. "It's been really fulfilling to see him have the recent success he's had."

The Marlins struggled against Eickhoff's best pitch, a slow curveball that accounted for each of his strikeouts.

"Jerad was good," Marlins manager Don Mattingly said. "He kept getting that curveball over and we didn't seem to know really exactly what we wanted to do with it. He kept us off balance, slowed us down with that."

Harper broke the game open with a drive off the second deck in right in the eighth. The slugger was mired in a 2-for-22 drought before launching Tyler Kinley's 88-mph slider 400 feet for his sixth homer.

Philadelphia's star outfielder praised Eickhoff.

"He was always tough to face," said Harper, who is 2 for 12 with six strikeouts against the right-hander. "I'm very excited for him."

Jorge Alfaro had two of Miami's five hits. The Marlins, who began the day in a tie with Kansas City for the worst record in the majors, dropped to 8-18.

The start of the game was delayed 1 hour, 33 minutes due to rain.

Alfaro's leadoff single in the fourth was Miami's first hit. But Alfaro was called out on a steal attempt when Eickhoff struck out Miguel Rojas and home plate umpire Nic Lentz ruled Rojas interfered with Realmuto's throw.

Realmuto put the Phillies in front with an opposite-field shot to right in the first off Jose Urena (1-4) that was helped by a strong wind. Franco's two-out homer to right in the fourth came on the same pitch, a two-seam fastball that was in almost the identical location down the middle of the plate.

Urena was sharp otherwise, allowing four hits in seven innings.

STRONG WINDS

Wind was a factor on a cool, blustery evening.

Rhys Hoskins' pop fly to shallow center in the first fell in for a double when it blew away from Marlins center fielder Lewis Brinson. Harper couldn't corral a foul ball in the second that bounced beyond his reach. And Philadelphia shortstop Sean Rodriguez had two near-collisions in the outfield as he raced to make tricky catches of wind-blown balls over his head, first just missing center fielder Andrew McCutchen in the fourth and then brushing against left fielder Nick Williams in the sixth.

TRAINER'S ROOM

Marlins: INF Neil Walker (hamstring) was out of the starting lineup, but walked as a pinch hitter in the eighth. ... OF/1B Garrett Cooper (left calf strain) had three hits and homered in a rehab assignment at Single-A Jupiter.

Phillies: SS Jean Segura (strained left hamstring) is expected to return to the lineup on Saturday.

UP NEXT

Marlins right-hander Trevor Richards (0-3, 3.72 ERA) opposes Phillies right-hander Jake Arrieta (3-2, 2.65 ERA) on Saturday night. Arrieta, who is 6-1 with a 2.78 ERA in nine career starts against Miami, is pitching for the first time since criticizing Harper for his ejection against the Mets on Monday night.