Vancouver Television Sports← GAME CENTRE
← MLB / AFTER THE WHISTLE

MLB • September 22, 2026

Ryan O'Hearn’s sixth-inning single breaks it open as Pirates blank Cardinals 2-0

The cleanest number on the board at PNC Park was also the one that decided everything. St. Louis never solved Pittsburgh’s pitching Tuesday, and the Pirates turned two later openings into a crisp 2-0 win.

MLB / FINAL
St. Louis Cardinals0 — 2Pittsburgh Pirates
St. Louis CardinalsPittsburgh Pirates

A game that stayed shut until Pittsburgh found one crack

For five innings, this matchup lived on restraint. Neither club put a run on the board, and the shape of the night suggested that one clean swing or one mistake might be enough. That proved true in the sixth, when Ryan O'Hearn finally supplied the separating play. His single to left brought home Oneil Cruz and gave Pittsburgh a 1-0 lead in a game that had offered almost nothing for either lineup before that moment.

That run mattered because of how little St. Louis generated in response. The Cardinals never mounted the kind of offensive answer that could reset the game, so Pittsburgh never needed an outburst. It only needed to keep the pressure alive long enough for a second opening.

The insurance run arrived in the seventh, and it came in a different form. Spencer Horwitz scored on a wild pitch charged to Winquest, even though Konnor Griffin was put out at third on the runner's fielder's choice during the same sequence. It was a messy scoring play rather than a loud one, but that suited the evening. Pittsburgh was not overpowering the Cardinals; it was simply the side that turned a narrow edge into another run.

Jones gave Pittsburgh the terms, and St. Louis never changed them

The pitching line that stands out most belongs to Jared Jones. In his three recorded innings, he allowed no hits, walked nobody and struck out five on 41 pitches, 29 for strikes. That is the kind of opening work that shapes a shutout even when the final margin stays small. He established that St. Louis would have to earn every base, and the Cardinals never showed they could do that consistently.

What makes the Cardinals' offensive night so stark is not just the zero in the run column. The available lines show no walks, five strikeouts and, at most, only a single hit in the team summary. However one resolves the discrepancy in the batting records, the larger truth is plain enough: Pittsburgh's staff kept the game nearly empty. St. Louis did not create recurring traffic, did not force the Pirates into trouble, and did not produce a scoring sequence of its own.

Andre Pallante deserves mention on the other side because the loss was not built in his early work. He covered two scoreless innings, allowed no hits and threw 13 strikes in 18 pitches. St. Louis kept the game under control at the start. The problem was that control lasted only as long as the offense could continue pretending a single run might be enough to survive. Once Pittsburgh scratched out the first breakthrough, the Cardinals had no counterpunch.

Our take: efficient enough for Pittsburgh, far too thin for St. Louis

Our take: this was a useful reminder that not every 2-0 game is tidy in the same way. Pittsburgh's version of clean baseball was not an offensive showcase. The Pirates finished with five hits, yet only one confirmed RBI scoring play appears in the log and the second run came home on a wild pitch. That says two things at once: the Pirates did enough to win comfortably, and they also left room to make a game like this less delicate. Turning five hits into only two runs is acceptable when the pitching delivers a shutout; it is not a formula to romanticize.

For St. Louis, the path forward is easier to identify because the shortage is so obvious. The Cardinals cannot let a game remain this narrow and still fail to create pressure. No walks, five strikeouts and almost no hit production meant Pittsburgh never had to pitch from distress. Even with Pallante keeping the early innings stable, St. Louis gave itself no margin for one sixth-inning single or one seventh-inning miscue. The offense does not need a dramatic reinvention based on this box alone, but it clearly needs more baserunners than it found here.

There is also a broader lesson in the way the Pirates scored. O'Hearn's single was the game's most direct piece of offense; the wild pitch run was the kind of extra that turns a one-run night into breathing room. That combination is why Pittsburgh deserves credit for staying alert in a low-scoring game instead of waiting for a big inning that never came. The Pirates were not dazzling. They were sharper where the game actually moved, and on a night this quiet, that was more than enough.

Scoring moments

  1. 6th Inning

    O'Hearn singled to left, Cruz scored.

  2. 7th Inning

    Horwitz scored on Winquest wild pitch, Griffin out at third on runner's fielder's choice.

  3. 7th Inning

    Horwitz scored on Winquest wild pitch, Griffin out at third on runner's fielder's choice.

  4. 7th Inning

    Horwitz scored on Winquest wild pitch, Griffin out at third on runner's fielder's choice.

  5. 7th Inning

    Horwitz scored on Winquest wild pitch, Griffin out at third on runner's fielder's choice.

St. Louis Cardinals — Batting
PlayerH-ABABRHRBIHRBBK#PAVGOBPSLG
JJ Wetherholt0-4400000319.240.339.365
Ivan Herrera0-4400000419.245.356.385
Alec Burleson0-4400000010.280.345.463
Jordan Walker0-330000005.273.331.471
Leo Bernal0-3300000214.299.341.494
Bryan Torres0-3300000215.235.308.340
Thomas Saggese0-2200001117.243.303.372
Nathan Church1-3301000111.253.297.375
Masyn Winn0-2200001115.234.309.319
St. Louis Cardinals — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Andre Pallante6.031122089-583.6189
Justin Bruihl0.211110019-93.6919
Cade Winquest1.110002022-154.6322
Pittsburgh Pirates — Batting
PlayerH-ABABRHRBIHRBBK#PAVGOBPSLG
Konnor Griffin2-4402000120.271.324.397
Brandon Lowe0-4400000012.260.330.489
Bryan Reynolds1-3301000010.262.365.425
Oneil Cruz0-3310001119.278.366.486
Rafael Flores Jr.0-3300001118.279.351.544
Ryan O'Hearn1-4401100118.264.330.441
Ronny Simon0-3300000013.294.333.412
Billy Cook0-000000000.176.208.235
Spencer Horwitz1-221100108.249.349.370
Jacob Gonzalez0-220000006.221.273.353
Jared Triolo0-110000006.240.311.306
Pittsburgh Pirates — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Jared Jones7.010009086-633.8786
Luke Weaver1.000013021-142.7521
Gregory Soto1.000012018-83.7218
St. Louis Cardinals — Team statistics
Batting · Games Played1
Batting · Team Games Played1
Batting · Hit By Pitch0
Batting · Ground Balls3
Batting · Strikeouts14
Batting · Runs Batted In0
Batting · Sacrifice Hit0
Batting · Hits1
Batting · Stolen Bases0
Batting · Walks2
Batting · Catcher Interference0
Batting · Runs0
Batting · Ground Into Double Play0
Batting · Sacrifice Flies0
Batting · At Bats28
Batting · Home Runs0
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base6
Batting · Triples0
Batting · Game Winning RBIs0
Batting · Intentional Walks0
Batting · Doubles1
Batting · Fly Balls11
Batting · Caught Stealing0
Batting · Pitches125
Batting · Games Started0
Batting · Pinch At Bats0
Batting · Pinch Hits0
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals0
Batting · Total Bases2
Batting · Plate Appearances30
Batting · Projected Home Runs0.0
Batting · Extra Base Hits1
Batting · Runs Created-1.4
Batting · Batting Average.036
Batting · Pinch Hit Average.000
Batting · Slugging Percentage.071
Batting · Secondary Average.107
Batting · On Base Percentage.100
Batting · OBP Pct + SLG Pct.171
Batting · Ground To Fly Ball Ratio0.3
Batting · Runs Created Per 27 Outs-1.4
Batting · Batter Rating3.0
Batting · At Bats Per Home Run0.0
Batting · Stolen Base Percentage0.00
Batting · Pitches Per Plate Appearance4.17
Batting · Isolated Power.036
Batting · Walk To Strikeout Ratio0.14
Batting · Walks Per Plate Appearance.067
Batting · Secondary Average Minus Batting Average.071
Batting · Runs Produced0.0
Batting · Runs Ratio0.0
Batting · Patience Ratio0.1
Batting · Balls In Play Average0.1
Batting · MLB Rating52.3
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves0
Pitching · Ground Balls14
Pitching · Strikeouts4
Pitching · Sacrifice Flies0
Pitching · Losses1
Pitching · Hits5
Pitching · Earned runs2
Pitching · Batters Hit0
Pitching · Walks3
Pitching · Runs2
Pitching · Stolen Bases1
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities0
Pitching · Home Runs0
Pitching · Triples1
Pitching · Finishes1
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls11
Pitching · Batters Faced33
Pitching · Holds0
Pitching · Doubles2
Pitching · Wins0
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches1
Pitching · Runs Batted In1
Pitching · Third Innings Pitched24
Pitching · Earned Runs2
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches130
Pitching · Run Support0.0
Pitching · Catcher Interference1
Pitching · Pitches As Starter89
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts1
Pitching · Inherited Runners2
Pitching · Inherited Runners Scored1
Pitching · Player Rating0.0
Pitching · At Bats29
Pitching · Total Bases9
Pitching · Is Qualified1
Pitching · Is Qualified0
Pitching · Full Innings8
Pitching · Partial Innings0
Pitching · Blown Saves0
Pitching · Innings pitched8.0
Pitching · Earned Run Average2.25
Pitching · Walks Plus Hits Per Inning Pitched1.00
Pitching · Win Percentage.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio1.3
Pitching · Pitches Per Start89.0
Pitching · Pitches Per Inning16.3
Pitching · Pitches Per Plate Appearance3.9
Pitching · Run Support Average0.0
Pitching · Opponent Batting Average.172
Pitching · Opponent's Slugging pct..310
Pitching · Opponent's On-base pct..250
Pitching · Opponent's OPB Pct + SLG Pct.560
Pitching · Save Percentage0.0
Pitching · Strikeouts Per 9 Innings4.5
Pitching · Strikeout To Walk Ratio1.3
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win0.0
Pitching · Balls In Play Average0.200
Pitching · Total Bases9.000
Pitching · Pitch Count130
Pitching · Strikes82
Pitching · Strike To Pitch Ratio0.6
Pitching · Wins Above Replacement0.0
Fielding · Games Played1
Fielding · Team Games Played1
Fielding · Double Plays0
Fielding · Opportunities0
Fielding · Errors1
Fielding · Passed Balls0
Fielding · Assists11
Fielding · Outfield Assists0
Fielding · Pickoffs0
Fielding · Putouts24
Fielding · Outs On Field24
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played24.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed1
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher1
Fielding · Successful Chances0
Fielding · Total Chances0
Fielding · Full Innings0
Fielding · Part Innings Played0
Fielding · Fielding Percentage0.000
Fielding · Range Factor0.0
Fielding · Zone Rating0.0
Fielding · Caught Stealing Percentage0.000
Fielding · Earned Run Average0.0
Fielding · Defensive Wins Above Replacement0.0
Pittsburgh Pirates — Team statistics
Batting · Games Played1
Batting · Team Games Played1
Batting · Hit By Pitch0
Batting · Ground Balls14
Batting · Strikeouts4
Batting · Runs Batted In1
Batting · Sacrifice Hit0
Batting · Hits5
Batting · Stolen Bases1
Batting · Walks3
Batting · Catcher Interference1
Batting · Runs2
Batting · Ground Into Double Play0
Batting · Sacrifice Flies0
Batting · At Bats29
Batting · Home Runs0
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base17
Batting · Triples1
Batting · Game Winning RBIs1
Batting · Intentional Walks0
Batting · Doubles2
Batting · Fly Balls11
Batting · Caught Stealing0
Batting · Pitches130
Batting · Games Started0
Batting · Pinch At Bats1
Batting · Pinch Hits0
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals1
Batting · Total Bases9
Batting · Plate Appearances33
Batting · Projected Home Runs0.0
Batting · Extra Base Hits3
Batting · Runs Created2.5
Batting · Batting Average.172
Batting · Pinch Hit Average.000
Batting · Slugging Percentage.310
Batting · Secondary Average.276
Batting · On Base Percentage.250
Batting · OBP Pct + SLG Pct.560
Batting · Ground To Fly Ball Ratio1.3
Batting · Runs Created Per 27 Outs2.8
Batting · Batter Rating18.5
Batting · At Bats Per Home Run0.0
Batting · Stolen Base Percentage1.00
Batting · Pitches Per Plate Appearance3.94
Batting · Isolated Power.138
Batting · Walk To Strikeout Ratio0.75
Batting · Walks Per Plate Appearance.091
Batting · Secondary Average Minus Batting Average.103
Batting · Runs Produced3.0
Batting · Runs Ratio0.5
Batting · Patience Ratio0.4
Batting · Balls In Play Average0.2
Batting · MLB Rating70.0
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves1
Pitching · Ground Balls3
Pitching · Strikeouts14
Pitching · Sacrifice Flies0
Pitching · Losses0
Pitching · Hits1
Pitching · Earned runs0
Pitching · Batters Hit0
Pitching · Walks2
Pitching · Runs0
Pitching · Stolen Bases0
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities1
Pitching · Home Runs0
Pitching · Triples0
Pitching · Finishes1
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls11
Pitching · Batters Faced30
Pitching · Holds1
Pitching · Doubles1
Pitching · Wins1
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches0
Pitching · Runs Batted In0
Pitching · Third Innings Pitched27
Pitching · Earned Runs0
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches125
Pitching · Run Support2.0
Pitching · Catcher Interference0
Pitching · Pitches As Starter86
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts1
Pitching · Inherited Runners0
Pitching · Inherited Runners Scored0
Pitching · Player Rating0.0
Pitching · At Bats28
Pitching · Total Bases2
Pitching · Is Qualified1
Pitching · Is Qualified1
Pitching · Full Innings9
Pitching · Partial Innings0
Pitching · Blown Saves0
Pitching · Innings pitched9.0
Pitching · Earned Run Average0.00
Pitching · Walks Plus Hits Per Inning Pitched0.33
Pitching · Win Percentage1.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio0.3
Pitching · Pitches Per Start86.0
Pitching · Pitches Per Inning13.9
Pitching · Pitches Per Plate Appearance4.2
Pitching · Run Support Average2.0
Pitching · Opponent Batting Average.036
Pitching · Opponent's Slugging pct..071
Pitching · Opponent's On-base pct..100
Pitching · Opponent's OPB Pct + SLG Pct.171
Pitching · Save Percentage1.0
Pitching · Strikeouts Per 9 Innings14.0
Pitching · Strikeout To Walk Ratio7.0
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win1.0
Pitching · Balls In Play Average0.071
Pitching · Total Bases2.000
Pitching · Pitch Count125
Pitching · Strikes85
Pitching · Strike To Pitch Ratio0.7
Pitching · Wins Above Replacement0.0
Fielding · Games Played1
Fielding · Team Games Played1
Fielding · Double Plays0
Fielding · Opportunities0
Fielding · Errors0
Fielding · Passed Balls0
Fielding · Assists3
Fielding · Outfield Assists0
Fielding · Pickoffs0
Fielding · Putouts27
Fielding · Outs On Field27
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played27.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed0
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher1
Fielding · Successful Chances0
Fielding · Total Chances0
Fielding · Full Innings0
Fielding · Part Innings Played0
Fielding · Fielding Percentage0.000
Fielding · Range Factor0.0
Fielding · Zone Rating0.0
Fielding · Caught Stealing Percentage0.000
Fielding · Earned Run Average0.0
Fielding · Defensive Wins Above Replacement0.0