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-110000014.241.341.367
Ivan Herrera0-110000015.247.358.387
Alec Burleson0-110000004.281.347.465
Jordan Walker0-110000002.274.332.473
Leo Bernal0-110000013.307.350.507
Bryan Torres0-110000016.238.311.344
Thomas Saggese0-110000006.245.301.374
Nathan Church0-110000005.252.296.372
Masyn Winn0-110000016.235.308.320
St. Louis Cardinals — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Andre Pallante2.000001018-133.6518
Pittsburgh Pirates — Batting
PlayerH-ABABRHRBIHRBBK#PAVGOBPSLG
Konnor Griffin0-110000003.266.321.388
Brandon Lowe0-110000003.261.332.491
Bryan Reynolds0-110000002.261.364.423
Oneil Cruz0-110000015.279.366.489
Rafael Flores Jr.0-110000003.284.351.552
Ryan O'Hearn0-110000002.264.330.442
Ronny Simon0-000000000.313.353.438
Spencer Horwitz0-000000000.248.346.367
Jacob Gonzalez0-000000000.223.275.356
Pittsburgh Pirates — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Jared Jones3.000005041-294.0441
St. Louis Cardinals — Team statistics
Batting · Games Played1
Batting · Team Games Played1
Batting · Hit By Pitch0
Batting · Ground Balls0
Batting · Strikeouts5
Batting · Runs Batted In0
Batting · Sacrifice Hit0
Batting · Hits0
Batting · Stolen Bases0
Batting · Walks0
Batting · Catcher Interference0
Batting · Runs0
Batting · Ground Into Double Play0
Batting · Sacrifice Flies0
Batting · At Bats9
Batting · Home Runs0
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base0
Batting · Triples0
Batting · Game Winning RBIs0
Batting · Intentional Walks0
Batting · Doubles0
Batting · Fly Balls0
Batting · Caught Stealing0
Batting · Pitches41
Batting · Games Started0
Batting · Pinch At Bats0
Batting · Pinch Hits0
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals0
Batting · Total Bases0
Batting · Plate Appearances9
Batting · Projected Home Runs0.0
Batting · Extra Base Hits0
Batting · Runs Created-0.9
Batting · Batting Average.000
Batting · Pinch Hit Average.000
Batting · Slugging Percentage.000
Batting · Secondary Average.000
Batting · On Base Percentage.000
Batting · OBP Pct + SLG Pct.000
Batting · Ground To Fly Ball Ratio0.0
Batting · Runs Created Per 27 Outs-2.8
Batting · Batter Rating0.0
Batting · At Bats Per Home Run0.0
Batting · Stolen Base Percentage0.00
Batting · Pitches Per Plate Appearance4.56
Batting · Isolated Power.000
Batting · Walk To Strikeout Ratio0.00
Batting · Walks Per Plate Appearance.000
Batting · Secondary Average Minus Batting Average.000
Batting · Runs Produced0.0
Batting · Runs Ratio0.0
Batting · Patience Ratio0.0
Batting · Balls In Play Average0.0
Batting · MLB Rating55.5
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves0
Pitching · Ground Balls4
Pitching · Strikeouts1
Pitching · Sacrifice Flies0
Pitching · Losses0
Pitching · Hits0
Pitching · Earned runs0
Pitching · Batters Hit0
Pitching · Walks0
Pitching · Runs0
Pitching · Stolen Bases0
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities0
Pitching · Home Runs0
Pitching · Triples0
Pitching · Finishes0
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls1
Pitching · Batters Faced6
Pitching · Holds0
Pitching · Doubles0
Pitching · Wins0
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches0
Pitching · Runs Batted In0
Pitching · Third Innings Pitched6
Pitching · Earned Runs0
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches18
Pitching · Run Support0.0
Pitching · Catcher Interference0
Pitching · Pitches As Starter0
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts0
Pitching · Inherited Runners0
Pitching · Inherited Runners Scored0
Pitching · Player Rating0.0
Pitching · At Bats6
Pitching · Total Bases0
Pitching · Is Qualified1
Pitching · Is Qualified0
Pitching · Full Innings2
Pitching · Partial Innings0
Pitching · Blown Saves0
Pitching · Innings pitched2.0
Pitching · Earned Run Average0.00
Pitching · Walks Plus Hits Per Inning Pitched0.00
Pitching · Win Percentage.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio4.0
Pitching · Pitches Per Start0.0
Pitching · Pitches Per Inning9.0
Pitching · Pitches Per Plate Appearance3.0
Pitching · Run Support Average0.0
Pitching · Opponent Batting Average.000
Pitching · Opponent's Slugging pct..000
Pitching · Opponent's On-base pct..000
Pitching · Opponent's OPB Pct + SLG Pct.000
Pitching · Save Percentage0.0
Pitching · Strikeouts Per 9 Innings4.5
Pitching · Strikeout To Walk Ratio0.0
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win0.0
Pitching · Balls In Play Average0.000
Pitching · Total Bases0.000
Pitching · Pitch Count0
Pitching · Strikes13
Pitching · Strike To Pitch Ratio0.0
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 · Putouts6
Fielding · Outs On Field0
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played0.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed0
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher0
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 Balls0
Batting · Strikeouts1
Batting · Runs Batted In0
Batting · Sacrifice Hit0
Batting · Hits0
Batting · Stolen Bases0
Batting · Walks0
Batting · Catcher Interference0
Batting · Runs0
Batting · Ground Into Double Play0
Batting · Sacrifice Flies0
Batting · At Bats6
Batting · Home Runs0
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base0
Batting · Triples0
Batting · Game Winning RBIs0
Batting · Intentional Walks0
Batting · Doubles0
Batting · Fly Balls0
Batting · Caught Stealing0
Batting · Pitches18
Batting · Games Started0
Batting · Pinch At Bats0
Batting · Pinch Hits0
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals0
Batting · Total Bases0
Batting · Plate Appearances6
Batting · Projected Home Runs0.0
Batting · Extra Base Hits0
Batting · Runs Created-0.6
Batting · Batting Average.000
Batting · Pinch Hit Average.000
Batting · Slugging Percentage.000
Batting · Secondary Average.000
Batting · On Base Percentage.000
Batting · OBP Pct + SLG Pct.000
Batting · Ground To Fly Ball Ratio0.0
Batting · Runs Created Per 27 Outs-2.7
Batting · Batter Rating0.0
Batting · At Bats Per Home Run0.0
Batting · Stolen Base Percentage0.00
Batting · Pitches Per Plate Appearance3.00
Batting · Isolated Power.000
Batting · Walk To Strikeout Ratio0.00
Batting · Walks Per Plate Appearance.000
Batting · Secondary Average Minus Batting Average.000
Batting · Runs Produced0.0
Batting · Runs Ratio0.0
Batting · Patience Ratio0.0
Batting · Balls In Play Average0.0
Batting · MLB Rating57.3
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves0
Pitching · Ground Balls2
Pitching · Strikeouts5
Pitching · Sacrifice Flies0
Pitching · Losses0
Pitching · Hits0
Pitching · Earned runs0
Pitching · Batters Hit0
Pitching · Walks0
Pitching · Runs0
Pitching · Stolen Bases0
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities0
Pitching · Home Runs0
Pitching · Triples0
Pitching · Finishes0
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls2
Pitching · Batters Faced9
Pitching · Holds0
Pitching · Doubles0
Pitching · Wins0
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches0
Pitching · Runs Batted In0
Pitching · Third Innings Pitched9
Pitching · Earned Runs0
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches41
Pitching · Run Support0.0
Pitching · Catcher Interference0
Pitching · Pitches As Starter0
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts0
Pitching · Inherited Runners0
Pitching · Inherited Runners Scored0
Pitching · Player Rating0.0
Pitching · At Bats9
Pitching · Total Bases0
Pitching · Is Qualified1
Pitching · Is Qualified0
Pitching · Full Innings3
Pitching · Partial Innings0
Pitching · Blown Saves0
Pitching · Innings pitched3.0
Pitching · Earned Run Average0.00
Pitching · Walks Plus Hits Per Inning Pitched0.00
Pitching · Win Percentage.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio1.0
Pitching · Pitches Per Start0.0
Pitching · Pitches Per Inning13.7
Pitching · Pitches Per Plate Appearance4.6
Pitching · Run Support Average0.0
Pitching · Opponent Batting Average.000
Pitching · Opponent's Slugging pct..000
Pitching · Opponent's On-base pct..000
Pitching · Opponent's OPB Pct + SLG Pct.000
Pitching · Save Percentage0.0
Pitching · Strikeouts Per 9 Innings15.0
Pitching · Strikeout To Walk Ratio0.0
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win0.0
Pitching · Balls In Play Average0.000
Pitching · Total Bases0.000
Pitching · Pitch Count0
Pitching · Strikes29
Pitching · Strike To Pitch Ratio0.0
Pitching · Wins Above Replacement0.0
Fielding · Games Played1
Fielding · Team Games Played1
Fielding · Double Plays0
Fielding · Opportunities0
Fielding · Errors0
Fielding · Passed Balls0
Fielding · Assists2
Fielding · Outfield Assists0
Fielding · Pickoffs0
Fielding · Putouts9
Fielding · Outs On Field0
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played0.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed0
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher0
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