Blazing 95-97 mph fastballs and commanding his offspeed pitches, the 23-year-old scattered three hits and struck out five on a night the Marlins avoided reaching the 100-loss plateau.
The Marlins returned to Miami around 4 a.m. ET on Monday morning after splitting a day-night doubleheader at Washington. Getting such an impressive outing from Eovaldi was a welcomed relief.
"We've had a long couple of days with the doubleheader and getting back at 4 in the morning," Miami manager Mike Redmond said. "That's exactly what we needed, a great pitching performance. We got that from Eovaldi. He went out there, pounded the strike zone. He got ahead of guys and got some quick outs and innings."
The 109 pitches Eovaldi threw were his second most of the season. On July 30, he logged 112 over six innings in a no-decision against the Mets.
"Early in the game, I was trying to get ahead with the curveball," Eovaldi said. "Towards the fifth and sixth innings, I was getting behind, but I was making pitches with my fastball later in the counts. That helped out a lot. For the most part, my fastball command was there."
The start was similar to Eovaldi's eight scoreless frames in a Sept. 1 win at Atlanta.
"We've seen that type of outing out of him a few times," Redmond said. "You could really tell from that first inning on, his breaking ball was sharp. His fastball was consistent, and it had some nice tilt. You could really tell he had it going. It was just a matter [of] could we get him some runs, and how long was he going to be able to go."
Eovaldi, Mike Dunn and Steve Cishek combined to toss Miami's 12th shutout win of the season.
Cishek, in a non-save situation, noted that there was some added incentive on the night.
"We saw the number today, 99," Cishek said. "[Logan Morrison] started screaming, 'We're not losing 100, boys!' I don't know if that had anything to do with anything. We obviously don't want to lose 100. So any motivation to finish strong in the remaining five games, we'll take it."
Eovaldi stepped up on a night former Cy Young Award winner Roy Halladay may have tossed his last pitch for the Phillies. Halladay faced just three batters, walking two, and he exited with what the Phillies called right arm fatigue.
"Really the least few starts, I just haven't been getting that bounceback in between," Halladay said. "I'm in zero pain, which is good."
Halladay added his doctor recommended three weeks of rest.
While Halladay's night consisted of just three batters, Eovaldi exited with two outs in the eighth inning, after Cesar Hernandez drew a walk.
"I really wanted to see if he could finish the eighth. It didn't happen," Redmond said. "We had Dunn ready to go."
Dunn retired Jimmy Rollins on a fly ball to center.
From the first pitch, it was clear that Halladay was laboring. In the city where he threw a perfect game in 2010, the right-hander was unable to find the strike zone or get any life on his pitches.
Of his 16 pitches, just five were strikes. Twice his velocity reached as high as 83 mph, and one of those was ball four to leadoff batter Donovan Solano. That pitch sailed to the backstop.
"I look at it as a guy out there still grinding and still competing," said Redmond, who played against Halladay. "I watched the first at-bat of the game and to see him up there at 83 mph, I was like, 'This guy does not feel good, at all.' Obviously, I've seen him when he was so sharp and throwing hard. I remember facing him when he was so tough to hit."
After Christian Yelich drew a one-out walk, Halladay, who was drenched in sweat, was done. The game-time temperature with the roof closed at Marlins Park was 77 degrees indoors.
Luis Garcia replaced Halladay, and he, too, struggled to throw strikes. Garcia issued successive walks to Giancarlo Stanton and Justin Ruggiano to force home a run.
Without a hit, the Marlins took a one-run lead.
The Phillies' bullpen stepped up and prevented further damage until the eighth, when the Marlins tacked on three insurance runs on RBI singles from Solano and Ed Lucas and a sacrifice fly from Yelich.
Eovaldi kept cruising until he encountered a bit of trouble in the sixth inning.
Rollins' two-out double was only the second hit Eovaldi allowed through that point. But Rollins was stranded when Chase Utley bounced a routine hopper to first base.
"He was able to throw his curveball and his slider for strikes, for the most part," catcher Jeff Mathis said. "He got some early outs in the game, and that helped him for sure."