Gray dominates as Red Sox pitcher, Contreras’ power lifts Boston past Royals

Sonny Gray reminded everyone on Monday night at Kauffman Stadium why the Boston Red Sox didn’t hesitate to pencil him into their rotation. The veteran right-hander was absolutely masterful, striking out nine batters over six innings while allowing just five hits and one run to guide Boston to a 3-1 victory over the Kansas City Royals. This wasn’t some flashy, overpowering performance. This was old-school excellence: precision, poise, and the kind of pitching that makes opposing hitters look foolish. Gray’s command was pristine, issuing just a single walk while methodically working through a Royals lineup that simply couldn’t catch up to his stuff.

Sonny Gray, Willson Contreras lead Red Sox to 3-1 win

Pitching Decisions

6.0IP5H1ER1BB9K
6.0IP5H2ER2BB5K
1.0IP0H0ER0BB1K

Star Performers

Willson Contreras

Season AVG: .253
4AB1H1HR2RBI1R0BB
Jac Caglianone

Season AVG: .254
4AB2H0HR1RBI0R0BB

The star of the show, however, belonged to Willson Contreras. The Red Sox catcher broke open a tight contest in the sixth inning with a thunderous two-run homer to left-center field, his 10th of the season. It was the kind of blast that changed the entire complexion of the game. Up to that point, Boston was operating on fumes offensively, but Contreras’ power stroke provided exactly the cushion the Red Sox needed. Jarren Duran added an insurance run in the seventh with a sacrifice fly, and suddenly what looked like it might be a grind-it-out affair became a Boston victory waiting to happen.

Willson Contreras' two-run home run (10)
Jarren Duran's sacrifice fly

Royals Fall Short Despite Quality Start from Lugo

Seth Lugo pitched a respectable game for Kansas City, surrendering five hits and two earned runs across six innings while striking out five. But Lugo’s performance was marred by two walks, and crucially, he had no answer for Contreras in that sixth inning. The Royals managed just one run on a Jac Caglianone RBI double in the seventh, but by then the damage was already done. Kansas City had opportunities. Bobby Witt Jr. was his usual dynamic self, stealing bases and creating havoc, but the Royals simply couldn’t capitalize on their chances. This is becoming a frustrating pattern for a team searching for consistency in 2026.

Jac Caglianone's RBI double

Manager Matt Quatraro has every right to feel disappointed with his offense’s execution. Missed opportunities in a one-run game are unforgivable at this level, and the Royals squandered several chances to push across crucial runs. Against a team like Boston, you simply cannot leave baserunners stranded and expect to steal victories.

Chapman Seals It With Vintage Dominance

Aroldis Chapman entered the game in the eighth inning, and even at this stage of his career, the flame-thrower’s fastball is still a problem for opposing hitters. He worked a perfect inning, striking out one and recording a save that sends Boston back to the Northeast with a division-clinching victory. Chapman’s presence in the ninth was the final punctuation mark on a masterclass in how Boston’s pitching can carry a team to victory when the bats aren’t firing on all cylinders.

Aroldis Chapman closes out the Red Sox 3-1 win

This Monday night affair was a statement win for the Red Sox. Gray’s excellence, Contreras’ power, and Chapman’s reliability combined to silence the Royals. Kansas City will need to regroup quickly, but Boston leaves Kansas City with the kind of pitching performance that could carry them through a grueling season.

Box Score

Boston Red Sox Batting

Player AB R H RBI BB SO AVG
Jarren Duran LF 2 0 0 1 2 1 .181
Mickey Gasper DH 5 1 2 0 0 1 .333
Wilyer Abreu RF 5 0 0 0 0 2 .291
Willson Contreras 1B 4 1 1 2 0 0 .253
Masataka Yoshida LF 4 0 1 0 0 0 .259
Ceddanne Rafaela CF 0 0 0 0 0 0 .284
Andruw Monasterio SS 4 0 2 0 0 2 .256
Marcelo Mayer 2B 4 0 1 0 0 1 .219
Connor Wong C 4 1 1 0 0 1 .255
Nick Sogard 3B 3 0 1 0 1 0 .286

Boston Red Sox Pitching

Pitcher IP H R ER BB SO ERA
Sonny Gray (W) 6.0 5 1 1 1 9 2.93
Justin Slaten 1.0 0 0 0 0 2 0.00
Garrett Whitlock 1.0 1 0 0 0 1 2.95
Aroldis Chapman (SV) 1.0 0 0 0 0 1 0.54

Kansas City Royals Batting

Player AB R H RBI BB SO AVG
Maikel Garcia 3B 4 0 1 0 0 1 .262
Bobby Witt Jr. SS 4 0 1 0 0 2 .302
Vinnie Pasquantino 1B 4 0 0 0 0 2 .198
Salvador Perez C 3 0 0 0 0 1 .201
Carter Jensen DH 2 1 0 0 1 1 .234
Starling Marte PH 1 0 0 0 0 1 .295
Jac Caglianone RF 4 0 2 1 0 0 .254
Isaac Collins LF 4 0 0 0 0 3 .221
Michael Massey 2B 3 0 1 0 0 0 .220
Kyle Isbel CF 3 0 1 0 0 2 .275

Kansas City Royals Pitching

Pitcher IP H R ER BB SO ERA
Seth Lugo (L) 6.0 5 2 2 2 5 3.68
Alex Lange 1.0 3 1 1 0 1 5.40
John Schreiber 1.0 1 0 0 0 2 3.44
Steven Cruz 1.0 0 0 0 1 0 7.45