ARCHIVE July 31, 2026
July 31, 2026 · AL East

St. Louis Cardinals vs Toronto Blue Jays

July 31, 2026Rogers CentreClear 77°F · 2 mph, R To L
AWAY
St. Louis Cardinals
54-56
1
vs
HOME
Toronto Blue Jays
51-59
3

Game Highlights

Published July 31, 2026 · Source: MLB

Scoring summary

INN BATTER PLAY SCORE
T5 Jordan Walker Jordan Walker singles on a fly ball to center fielder Daulton Varsho. Nathan Church scores. JJ Wetherholt to 3rd. STL 1, TOR 0
B6 Kazuma Okamoto Kazuma Okamoto doubles (15) on a line drive to left fielder Lars Nootbaar. Vladimir Guerrero Jr. scores. STL 1, TOR 1
B8 Luis Urías Luis Urías singles on a ground ball to left fielder Lars Nootbaar. George Springer scores. Daulton Varsho scores. Ernie Clement to 2nd. STL 1, TOR 3

Box score

  123456789 R
STL 000010000 1
TOR 000001020 3

Pitching & bullpen

How the game was pitched — the starters, the bullpen sequence and each arm's role, and the pitch counts behind them.

Cardinals AWAY 1

Kyle Leahy started for Cardinals, leaving with the game tied 1–1. Out of the bullpen, Peter Strzelecki took the roughest line.

workload · innings pitched
  • Kyle Leahy Starter 6.0 98 1 3
    Pitch-by-pitch: what Kyle Leahy threw
    CSW 22% 1st-pitch strike 50% 4.1 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Slider 20 20% 2 3 3 6 6
    Curveball 19 19% 2 1 4 9 3
    Four-Seam Fastball 15 15% 0 4 5 3 3
    Changeup 15 15% 1 0 5 7 2
    Sweeper 15 15% 3 0 2 7 3
    Sinker 14 14% 2 4 0 5 3
  • Justin Bruihl Middle 0.1 16 0 1
  • Peter Strzelecki Middle 1.0 17 2 0 L inherited 2, stranded 2
  • Gordon Graceffo Middle 0.2 13 0 0 inherited 2, all 2 scored
Blue Jays HOME 3

Dylan Cease started for Blue Jays, leaving trailing 0–1.

workload · innings pitched
  • Dylan Cease Starter 6.0 96 1 7
    Pitch-by-pitch: what Dylan Cease threw
    CSW 29% 1st-pitch strike 63% 4.0 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Four-Seam Fastball 42 44% 4 6 10 17 5
    Slider 30 31% 7 2 2 14 5
    Changeup 8 8% 3 1 0 2 2
    Sinker 8 8% 1 1 1 3 2
    Knuckle Curve 6 6% 0 2 2 2 0
    Sweeper 2 2% 1 0 0 1 0
  • Spencer Miles Long 1.0 16 0 2
  • Jeff Hoffman Closer 1.0 11 0 2 W
  • Louis Varland Closer 1.0 15 0 0 SV

Where the game turned

2 runs Bottom 8th · off Graceffo
  • Urías 1B (2)

Batting lines

AWAY · STL
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
JJ Wetherholt 2B 3 0 0 0 1 1 .251 .348 .393 .741
Jordan Walker RF 4 0 1 1 0 2 .281 .341 .494 .835
Alec Burleson 1B 3 0 1 0 1 2 .282 .344 .459 .803 2B
Iván Herrera DH 4 0 0 0 0 1 .244 .361 .379 .740
Lars Nootbaar LF 4 0 0 0 0 1 .235 .339 .356 .695
Masyn Winn SS 3 0 1 0 1 1 .243 .319 .322 .641
Nathan Church CF 4 1 2 0 0 1 .226 .269 .354 .623 SB
José Fermín 3B 4 0 0 0 0 0 .241 .306 .364 .670
Jimmy Crooks C 3 0 0 0 0 2 .165 .253 .306 .559
HOME · TOR
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
Myles Straw RF 0 0 0 0 0 0 .218 .277 .312 .589
Vladimir Guerrero Jr. 1B 4 1 1 0 0 0 .265 .344 .358 .702 2B
Kazuma Okamoto 3B 4 0 1 1 0 1 .231 .307 .454 .761 2B
George Springer DH 3 1 1 0 1 0 .235 .319 .402 .721
Daulton Varsho CF 3 1 0 0 1 1 .245 .307 .379 .686
Ernie Clement LF 3 0 0 0 1 1 .292 .318 .420 .738
Luis Urías 2B 1 0 1 2 0 0 .233 .313 .465 .778
Brandon Valenzuela C 4 0 3 0 0 0 .239 .316 .402 .718
Andrés Giménez SS 3 0 2 0 0 0 .232 .274 .353 .627
Nathan Lukes RF 2 0 0 0 1 0 .279 .338 .388 .726
Jesús Sánchez LF 2 0 0 0 0 0 .272 .314 .433 .747
Davis Schneider LF 1 0 0 0 0 1 .148 .279 .287 .566

Pitching lines

AWAY · STL
PITCHER IPHRERBBKHR NPERA DEC
Kyle Leahy 6.0 6 1 1 1 3 0 98 3.44
Justin Bruihl 0.1 2 0 0 0 1 0 16 3.59
Peter Strzelecki 1.0 0 2 2 2 0 0 17 9.00 L
Gordon Graceffo 0.2 1 0 0 1 0 0 13 3.15
HOME · TOR
PITCHER IPHRERBBKHR NPERA DEC
Dylan Cease 6.0 3 1 1 3 7 0 96 2.41
Spencer Miles 1.0 1 0 0 0 2 0 16 3.21
Jeff Hoffman 1.0 0 0 0 0 2 0 11 4.02 W
Louis Varland 1.0 1 0 0 0 0 0 15 0.96 SV

Manager comparison

AWAY · STL
Oliver Marmol
Lineup 2.9 R Bunts 2.5 R IBBs 2.0 R
HOME · TOR
John Schneider
Lineup 1.6 R Bunts 3.2 R IBBs 3.5 R

Recent form

AWAY · STL
4-6 W1 -9 run diff
WLWWLLLWLL
HOME · TOR
6-4 L1 +1 run diff
LWLWLWWWLW

Season series: 1-2 with STL listed first across 3 prior meetings.

Keep reading

How RunsLeft analyzes games

Standard content on this page comes from the MLB Stats API. The pitching analysis describes how the game was pitched — the starter's line, the bullpen sequence and each arm's role (opener, bulk, setup, closer), pitch counts as a fatigue signal, and the leverage context where the game turned. Reliever roles are inferred from how the manager used each arm up to that date. It describes structure and constraints; it does not grade the manager.

Read the full methodology.