ARCHIVE July 20, 2026
July 20, 2026 · AL Cent

San Francisco Giants vs Kansas City Royals

July 20, 2026Kauffman StadiumClear 97°F · 6 mph, R To L
AWAY
San Francisco Giants
42-58
3
vs
HOME
Kansas City Royals
41-60
4

Game Highlights

Published July 20, 2026 · Source: MLB

Scoring summary

INN BATTER PLAY SCORE
T4 Heliot Ramos Heliot Ramos homers (9) on a fly ball to right center field. SF 1, KC 0
B4 Salvador Perez Salvador Perez homers (13) on a fly ball to center field. Vinnie Pasquantino scores. SF 1, KC 2
B4 Isaac Collins Isaac Collins singles on a line drive to right fielder Jung Hoo Lee. Michael Massey scores. SF 1, KC 3
T9 Willy Adames Willy Adames homers (18) on a fly ball to right center field. Jung Hoo Lee scores. SF 3, KC 3
B9 Nick Loftin Nick Loftin singles on a soft bunt ground ball to first baseman Bryce Eldridge. Josh Rojas scores. Tyler Tolbert to 2nd. SF 3, KC 4

Box score

  123456789 R
SF 000100002 3
KC 000300001 4

Pitching & bullpen

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

Giants AWAY 3

Trevor McDonald started for Giants, leaving trailing 1–3. Out of the bullpen, Caleb Kilian took the roughest line.

workload · innings pitched
  • Trevor McDonald Starter 4.0 67 3 3
    Pitch-by-pitch: what Trevor McDonald threw
    CSW 28% 1st-pitch strike 68% 3.5 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Sinker 44 66% 1 14 7 16 6
    Slider 14 21% 2 1 2 7 2
    Changeup 9 13% 1 0 2 2 4
  • JT Brubaker Long 2.1 38 0 2
  • Dylan Smith Middle 0.2 6 0 1 inherited 2, stranded 2
  • Jason Foley Middle 1.0 9 0 0
  • Caleb Kilian Middle 0.1 7 1 0 L
Royals HOME 4

Michael Wacha started for Royals, leaving with a 3–1 lead. Out of the bullpen, Alex Lange took the roughest line.

workload · innings pitched
  • Michael Wacha Starter 6.0 96 1 5
    Pitch-by-pitch: what Michael Wacha threw
    CSW 31% 1st-pitch strike 48% 4.2 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Four-Seam Fastball 28 29% 1 8 5 9 5
    Changeup 24 25% 2 5 6 5 6
    Sinker 17 18% 2 3 4 5 3
    Curveball 9 9% 0 4 0 4 1
    Cutter 9 9% 0 2 1 6 0
    Slider 9 9% 2 1 1 4 1
  • Steven Cruz Middle 1.0 10 0 0 HLD
  • Daniel Lynch IV Setup 1.0 15 0 1 HLD
  • Alex Lange Middle 1.0 19 2 2 W

Where the game turned

1 run Bottom 9th · off Kilian
  • Loftin 1B (1)

Batting lines

AWAY · SF
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
Luis Arraez 2B 4 0 0 0 0 0 .323 .362 .450 .812
Bryce Eldridge 1B 3 0 0 0 1 3 .271 .366 .483 .849
Casey Schmitt 3B 4 0 0 0 0 1 .275 .304 .482 .786
Rafael Devers DH 3 0 1 0 1 1 .243 .313 .471 .784
Heliot Ramos LF 4 1 1 1 0 2 .276 .310 .469 .779 HR (9)
Jung Hoo Lee RF 4 1 1 0 0 0 .303 .334 .424 .758
Willy Adames SS 4 1 1 2 0 1 .228 .279 .434 .713 HR (18)
Drew Gilbert CF 4 0 0 0 0 0 .228 .308 .356 .664
Daniel Susac C 3 0 2 0 0 0 .264 .308 .336 .644 2B, SB
HOME · KC
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
Carter Jensen C 5 0 0 0 0 1 .242 .310 .429 .739
Nick Loftin SS 3 0 2 1 0 0 .242 .329 .395 .724
Jac Caglianone RF 4 0 0 0 0 1 .260 .318 .466 .784
Lane Thomas CF 4 0 2 0 0 2 .244 .343 .419 .762
Vinnie Pasquantino 1B 2 1 0 0 1 0 .221 .311 .339 .650
Salvador Perez DH 3 1 1 2 0 1 .213 .258 .359 .617 HR (13)
Michael Massey 2B 4 1 1 0 0 0 .267 .306 .425 .731 2B
Josh Rojas 3B 4 1 1 0 0 0 .233 .250 .349 .599
Tyler Tolbert LF 0 0 0 0 0 0 .345 .381 .466 .847
Bobby Witt Jr. SS 1 0 0 0 1 1 .279 .350 .450 .800
Isaac Collins LF 3 0 2 1 0 0 .245 .345 .365 .710

Pitching lines

AWAY · SF
PITCHER IPHRERBBKHR NPERA DEC
Trevor McDonald 4.0 4 3 3 2 3 1 67 5.12
JT Brubaker 2.1 3 0 0 0 2 0 38 2.74
Dylan Smith 0.2 0 0 0 0 1 0 6 3.21
Jason Foley 1.0 0 0 0 0 0 0 9 0.00
Caleb Kilian 0.1 2 1 1 0 0 0 7 4.81 L
HOME · KC
PITCHER IPHRERBBKHR NPERA DEC
Michael Wacha 6.0 3 1 1 2 5 1 96 3.66
Steven Cruz 1.0 0 0 0 0 0 0 10 4.50 HLD
Daniel Lynch IV 1.0 1 0 0 0 1 0 15 2.18 HLD
Alex Lange 1.0 2 2 2 0 2 1 19 6.30 W

Manager comparison

AWAY · SF
Tony Vitello
Lineup 2.2 R Bunts 2.7 R IBBs 2.9 R
HOME · KC
Matt Quatraro
Lineup 3.7 R Bunts 2.4 R IBBs 1.8 R

Recent form

AWAY · SF
4-6 L2 +1 run diff
LLWLLLWWLW
HOME · KC
4-6 L1 -6 run diff
LWWLLLLWLW

Season series: 0-3 with SF 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.