Cardinals Stun Pirates with Improbable 9th-Inning Rally at PNC Park

Sometimes baseball rewards the patient and punishes the cocky, and Monday night at PNC Park was a masterclass in both. The Pittsburgh Pirates were one out, maybe two, away from something truly special. Instead, they got the Cardinals, a four-run ninth inning, and a hard lesson in never taking anything for granted in this game.

Pitching Decisions

Star Performers

JJ Wetherholt

Season AVG: .238
4AB1H1HR1RBI1R0BB
Ryan O'Hearn

Season AVG: .316
3AB1H0HR1RBI0R1BB

Let’s be clear about what we witnessed here. The Pirates had a perfect game through six innings courtesy of a combined effort from their pitching staff. Wilber Dotel was absolutely dealing, striking out three and touching triple digits while looking untouchable. The Cardinals’ bats were nowhere to be found, and it looked like this was going to be one of those nights where the script was already written. Except Alec Burleson had other ideas, breaking up the perfect game with a single in the seventh. It was a small thing, a micro-burst of hope for a team that looked dead in the water. But in baseball, you take what you can get.

Cardinals end perfect game bid, rally to win in 9th

By the ninth inning, the Pirates led 2-0, in complete control. Dennis Santana had taken over and looked to close things out. That’s when everything went sideways for Pittsburgh in the most humiliating way possible. Ryan Fernandez and the Cardinals’ bullpen stormed back with a vengeance, setting the table for an onslaught that will haunt Don Kelly and his staff for weeks.

Pagés, Wetherholt hit back-to-back homers in the 9th

Pedro Pagés launched a solo shot to left, cutting it to 2-1. Then JJ Wetherholt followed with a go-ahead homer to right-center, his sixth of the season and a dagger to the Pirates’ heart. But the Cardinals weren’t done. José Fermín absolutely ripped a double down the line that scored two more, and suddenly what looked like a coronation had turned into a complete collapse. The inning was an embarrassment of riches for St. Louis, a demolition job executed with surgical precision.

José Fermín's go-ahead two-run double

Wetherholt deserves special mention here. Playing in his hometown, the kid delivered when it mattered most, tying the game with a clutch swing that showed composure beyond his years. This is the kind of moment that defines careers, and Wetherholt stepped up when the pressure was maximum.

Pedro Pagés' solo homer (3)

Pirates Waste Early Chances

Credit where it’s due to Pittsburgh for getting out to an early lead. Ryan O'Hearn singled in Brandon Lowe in the first, and Jake Mangum drove in Nick Gonzales in the second. But two runs looked woefully inadequate once Dennis Santana imploded in the ninth, allowing four runs on four hits with two walks in just 0.2 innings. That’s not just losing. That’s surrendering.

Condensed Game: STL@PIT – 4/27/26

Cardinals Seize the Moment

Ryan Fernandez’s work in two innings was pristine, zero hits, zero runs, four strikeouts. George Soriano nailed down the save with a clean ninth. This is how you want your bullpen to perform when everything is on the line. St. Louis’s relief corps didn’t just keep the game close. They positioned their lineup to deliver the knockout blow, and that’s the sign of a team built to win.

JJ Wetherholt hits a solo home run in Cardinals' win

The Pirates had a perfect game within reach and blew it. The Cardinals had virtually no chance and took it anyway. That’s baseball, folks, and that’s why you play all nine innings.

Box Score

St. Louis Cardinals Batting

Player AB R H RBI BB SO AVG
JJ Wetherholt 2B 4 1 1 1 0 0 .238
Iván Herrera DH 3 0 0 0 1 1 .232
Victor Scott II CF 0 1 0 0 0 0 .191
Alec Burleson 1B 4 1 2 0 0 0 .255
Jordan Walker RF 3 0 0 0 1 2 .275
Nolan Gorman 3B 2 0 0 0 0 0 .220
José Fermín LF 2 0 2 2 0 0 .276
George Soriano P 0 0 0 0 0 0 .000
Masyn Winn SS 4 0 0 0 0 0 .253
Nathan Church LF 4 0 0 0 0 2 .254
Thomas Saggese 3B 3 0 0 0 0 2 .170
Ramón Urías 3B 0 0 0 0 0 0 .180
Pedro Pagés C 3 1 1 1 0 0 .255

St. Louis Cardinals Pitching

Pitcher IP H R ER BB SO ERA
Dustin May 6.0 7 2 2 2 2 5.28
Ryan Fernandez (W) 2.0 0 0 0 0 4 1.59
George Soriano (SV) 1.0 1 0 0 0 1 4.38

Pittsburgh Pirates Batting

Player AB R H RBI BB SO AVG
Spencer Horwitz 1B 4 0 1 0 0 1 .257
Billy Cook CF 0 0 0 0 0 0 .273
Brandon Lowe 2B 3 1 0 0 1 1 .240
Bryan Reynolds RF 4 0 0 0 0 0 .233
Ryan O'Hearn 1B 3 0 1 1 1 1 .316
Marcell Ozuna DH 4 0 0 0 0 1 .161
Nick Gonzales 3B 4 1 3 0 0 1 .323
Konnor Griffin SS 4 0 0 0 0 0 .213
Jake Mangum LF 3 0 2 1 0 1 .274
Henry Davis C 3 0 1 0 0 1 .169

Pittsburgh Pirates Pitching

Pitcher IP H R ER BB SO ERA
Mason Montgomery 1.0 0 0 0 0 1 3.65
Justin Lawrence 1.0 0 0 0 0 1 5.14
Wilber Dotel 4.0 0 0 0 0 3 1.35
Evan Sisk 0.2 1 0 0 0 0 2.00
Isaac Mattson 0.1 0 0 0 0 1 1.13
Gregory Soto 1.0 1 0 0 0 0 1.84
Dennis Santana (L) 0.2 4 4 4 2 0 3.29
Cam Sanders 0.1 0 0 0 0 1 12.00