Hoskins’ seventh career multi-homer game and second this season helped the Phillies improve to 3-1 against St. Louis.
Wheeler (2-2) struck out nine and edged Cardinals starter Adam Wainwright in a classic pitchers’ duel that took just 2 hours, 22 minutes.
“I don’t think you’re going to see it that often. … It was cool to see an old-fashioned ballgame,” Phillies manager Joe Girardi said. “It was neat to watch.”
Wheeler retired his first 14 batters until Paul DeJong’s opposite-field single to right ended the streak in the fifth.
“When the command is there, it makes it easier,” Wheeler said. “Me and J.T. (Realmuto) were on the same page. It was a lot of fun.”
The right-hander helped himself with some quick thinking in the sixth. After a walk to Justin Williams opened the inning, Wainwright popped up a bunt.
Instead of catching it on the fly, Wheeler allowed the ball to fall at his feet. He picked it up and started a 1-6-4 double play to end the threat.
“You could see how uncomfortable their hitters were,” Hoskins said. “A couple guys who did get on first said to me his stuff was exploding out of his hand. Huge performance by him.”
Wheeler was lifted after issuing a leadoff walk to Matt Carpenter in the ninth on his 114th pitch. Héctor Neris got the save, but not before Carpenter scored on a groundout by Dylan Carlson.
The performance stopped a string of three rough outings by Wheeler in which he gave up 10 earned runs over 16 2/3 innings.
“When you have a couple subpar games, you want to get back out there on the right foot,” Wheeler said. “I wanted to get the W for us.”
Wainwright (0-3) tossed a complete game on 107 pitches, allowing six hits and striking out eight. His only costly mistakes came to Hoskins in the seventh and ninth as the Cardinals’ winning streak was snapped at three.
“I didn’t make any mistakes with my cutter until that last one to Rhys,” Wainwright said. “He’s not going to miss pitches like that and I gave him two cookies right over the middle of the plate.”
Wainwright was also the last Cardinals pitcher to take a loss after pitching a nine-inning complete game when he was on the short side of a 2-1 decision against the Dodgers almost 14 years ago, on Aug. 10, 2007.
“Still my favorite thing about pitching is being able to go out and get those last three outs,” Wainwright said. “Really hurting about that second run. We’re still playing right now if I don’t give up that second run.”
Williams saved a run with a diving catch on Alec Bohm’s drive toward right-center to end the top of the seventh.
During batting practice, Phillies slugger Bryce Harper laced a line drive that hit another ball in midair as that one was being thrown in from the outfield.
Philadelphia selected the contract of OF Odúbel Herrera and optioned OF Mickey Moniak to the alternate training site. Herrera batted seventh and played in his first major league game since May 26, 2019, after serving an 85-game suspension for domestic violence. He did not play last year after being designated for assignment during the shortened season.
Phillies: LHP José Alvarado and LHP Matt Moore were activated off the injured list. LHP Bailey Falter and RHP Spencer Howard were optioned to the alternate site.
Cardinals: C Yadier Molina was back in the lineup after missing two games due to right foot soreness. … RHP Miles Mikolas (right shoulder) threw two innings Sunday at the team’s alternate site.
The Phillies will start RHP Zach Eflin (1-0, 2.77 ERA) against RHP Carlos Martínez (0-4, 6.00) in the second of a four-game series Tuesday night. Eflin allowed two runs over seven innings in a 9-2 win against St. Louis on April 16. Martínez gave up six runs in the second inning of that game, but faced the minimum over his last three innings.