ARCHIVE July 21, 2026
July 21, 2026 · AL Cent

San Francisco Giants vs Kansas City Royals

July 21, 2026Kauffman StadiumPartly Cloudy 87°F · 6 mph, L To R
AWAY
San Francisco Giants
42-59
2
vs
HOME
Kansas City Royals
42-60
3

Game Highlights

Published July 21, 2026 · Source: MLB

Scoring summary

INN BATTER PLAY SCORE
B3 Carter Jensen Carter Jensen homers (14) on a fly ball to right center field. SF 0, KC 1
T5 Drew Gilbert Drew Gilbert singles on a ground ball to right fielder Jac Caglianone. Jesus Rodriguez scores. SF 1, KC 1
T5 Heliot Ramos Heliot Ramos reaches on a fielder's choice. Drew Gilbert scores. Christian Koss to 3rd. Throwing error by shortstop Tyler Tolbert. SF 2, KC 1
B6 Vinnie Pasquantino Vinnie Pasquantino singles on a ground ball to center fielder Drew Gilbert. Isaac Collins scores. Salvador Perez to 3rd. SF 2, KC 2
B6 Nick Loftin Nick Loftin singles on a ground ball to left fielder Heliot Ramos. Salvador Perez scores. Vinnie Pasquantino to 3rd. Starling Marte to 2nd. SF 2, KC 3

Box score

  123456789 R
SF 000020000 2
KC 001002000 3

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 2

Tyler Mahle started for Giants, leaving with a 2–1 lead.

workload · innings pitched
  • Tyler Mahle Starter 5.0 91 3 4 L
    Pitch-by-pitch: what Tyler Mahle threw
    CSW 19% 1st-pitch strike 55% 4.1 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Four-Seam Fastball 42 46% 2 5 13 14 8
    Cutter 26 29% 3 2 5 13 3
    Splitter 23 25% 3 2 8 5 5
  • Sam Hentges Middle 0.1 14 0 1 BS inherited 2, 1 scored
  • Keaton Winn Setup 0.2 9 0 0 inherited 3, 1 scored
  • Dylan Smith Middle 1.0 13 0 2
  • Caleb Kilian Middle 1.0 11 0 0
Royals HOME 3

Luinder Avila started for Royals, leaving with a 3–2 lead.

workload · innings pitched
  • Luinder Avila Starter 6.1 87 2 7 W
    Pitch-by-pitch: what Luinder Avila threw
    CSW 32% 1st-pitch strike 76% 3.5 pitches/PA
    Pitch#%WhiffCSFoulBallIn play
    Sinker 34 39% 2 7 6 12 7
    Four-Seam Fastball 16 18% 2 5 3 2 4
    Slider 16 18% 4 2 4 3 3
    Curveball 13 15% 3 3 2 3 2
    Changeup 8 9% 0 0 2 6 0
  • Matt Strahm Setup 0.2 11 0 1 HLD inherited 1, stranded 1
  • John Schreiber Middle 1.0 20 0 0 HLD
  • Alex Lange Middle 1.0 15 0 2 SV

Where the game turned

1 run Bottom 6th · off Winn
  • Loftin 1B (1)

Batting lines

AWAY · SF
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
Heliot Ramos LF 3 0 0 1 0 0 .273 .309 .463 .772
Bryce Eldridge DH 4 0 1 0 0 2 .271 .364 .478 .842
Casey Schmitt 3B 3 0 0 0 1 1 .273 .304 .478 .782
Rafael Devers 1B 4 0 0 0 0 0 .241 .310 .466 .776
Willy Adames SS 4 0 0 0 0 3 .225 .277 .430 .707
Jesus Rodriguez C 3 1 1 0 0 1 .244 .306 .422 .728 2B
Drew Gilbert CF 4 1 1 1 0 2 .228 .307 .354 .661
Christian Koss 2B 2 0 1 0 1 0 .143 .217 .190 .407
Jung Hoo Lee RF 3 0 1 0 1 1 .303 .336 .423 .759
HOME · KC
BATTER ABRHRBIBBK AVGOBPSLGOPS NOTES
Carter Jensen C 4 1 1 1 0 0 .242 .309 .436 .745 HR (14)
Lane Thomas CF 4 0 0 0 0 2 .240 .338 .412 .750
Isaac Collins LF 1 1 1 0 1 0 .247 .348 .367 .715 SB
Salvador Perez DH 3 1 0 0 0 2 .211 .258 .356 .614
Vinnie Pasquantino 1B 3 0 2 1 1 1 .226 .316 .343 .659
Starling Marte RF 3 0 1 0 0 0 .270 .333 .330 .663
Michael Massey 2B 4 0 1 0 0 1 .266 .305 .422 .727
Nick Loftin 3B 4 0 2 1 0 0 .244 .329 .394 .723
Tyler Tolbert SS 3 0 0 0 0 0 .328 .364 .443 .807
Jac Caglianone RF 2 0 0 0 0 1 .258 .316 .463 .779

Pitching lines

AWAY · SF
PITCHER IPHRERBBKHR NPERA DEC
Tyler Mahle 5.0 5 3 3 1 4 1 91 5.31 L
Sam Hentges 0.1 1 0 0 0 1 0 14 1.80 BS
Keaton Winn 0.2 1 0 0 0 0 0 9 3.00
Dylan Smith 1.0 1 0 0 1 2 0 13 3.00
Caleb Kilian 1.0 0 0 0 0 0 0 11 4.69
HOME · KC
PITCHER IPHRERBBKHR NPERA DEC
Luinder Avila 6.1 5 2 2 1 7 0 87 4.86 W
Matt Strahm 0.2 0 0 0 0 1 0 11 7.09 HLD
John Schreiber 1.0 0 0 0 1 0 0 20 3.29 HLD
Alex Lange 1.0 0 0 0 1 2 0 15 6.15 SV

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.