Baltimore Orioles at Kansas City Royals
· Major League Baseball
1 - 8
Heasley sharp over 7 innings as Royals top Orioles 8-1
Michael A. Taylor also homered for Kansas City, which had a season-high eight extra-base hits — the Royals' most in a game since April 2, 2021, against Texas.
“Talk about how you have to feel it, see it and all the pieces have to come together,” manager Mike Matheny said. “The extra-base hits, the situational hitting, good baserunning and good defense and our starter doing what he did today.”
Heasley (1-3) had the best start of his young career, allowing just one baserunner and struck out seven. He became the fifth Royals player — and first since 1992 — to pitch seven innings and allow one hit or fewer with no walks.
“I think the biggest thing is that I was on the attack from the get-go,” Heasley said. “I felt like I've been throwing well recently, but I feel like I've gotten more confident every time and trust the defense behind me.”
It was the opposite for Bruce Zimmermann (2-5), who gave up a career-high seven earned runs in 4 ⅔ innings while allowing 10 hits and striking out two.
“I thought he got hurt again today with his off-speed stuff,” manager Brandon Hyde said. “For me, it was a lot of elevated off-speed in the first and then just hung a bad slider to Melendez.”
Perez and Melendez dazzled with their bats and gloves. Perez homered in the first inning with a 436-foot blast that nearly hit Crown Vision.
“I hit it pretty good,” Perez said with a smile. “I stayed back and got ahead in the count.”
Then, the five-time Gold Glove catcher showed off his defensive prowess in the third inning by fielding a bunt to his left, twirling and throwing out the speedy Cedric Mullins at first.
“It was a great bunt,” Perez said. “I'm just going to do my best to help my pitcher. I try to do my job and that was a great play."
In the fifth inning, Melendez made a diving catch in right field and followed that up with a 425-foot three-run homer in his next at-bat to give the Royals a 7-0 lead. Kansas City has scored at least seven runs in three straight games for the first time since September 2019.
“I knew he was going to try and get me to chase something and left it over the plate,” Melendez said. “When the ball was hit (on the diving catch), I saw the ball and kind of lost it for a second and just stayed with it.”
Anthony Santander homered off Albert Abreu in the ninth inning for Baltimore to end Kansas City's shutout bid.
ROSTER MOVES
Royals: LHP Angel Zerpa was recalled from Northwest Arkansas and RHP Collin Snider was optioned to Triple-A.
TRAINER’S ROOM
Royals: RHP Zack Greinke (right flexor strain) will start a rehab assignment Sunday in Omaha. OF Edward Olivares (right quad strain) started a rehab assignment in Triple-A.
UP NEXT
Baltimore sends RHP Tyler Wells (2-4, 3.78 ERA) to the mound on Saturday against LHP Daniel Lynch (2-5, 5.36 ERA).
How can I watch Baltimore Orioles vs. Kansas City Royals?
- TV Channel: Orioles at Royals 2022 MLB Baseball, is broadcasted on MLB.tv.
- Online streaming: Sign up for Fubo.
Scoring Summary
![]() |
9th Inning | Odor grounded into double play, second to shortstop to first, McKenna out at second. |
![]() |
9th Inning | Mountcastle struck out swinging. |
![]() |
9th Inning | McKenna reached on infield single to pitcher. |
![]() |
9th Inning | Santander homered to right (378 feet). |
![]() |
9th Inning | Abreu relieved Payamps |
![]() |
9th Inning | Melendez catching. |
Statistics
BAL |
KC |
|
|---|---|---|
| 1 | Games Played | 1 |
| 1 | Team Games Played | 1 |
| 0 | Hit By Pitch | 0 |
| 10 | Ground Balls | 13 |
| 9 | Strikeouts | 7 |
| 1 | Runs Batted In | 8 |
| 0 | Sacrifice Hit | 0 |
| 4 | Hits | 12 |
| 0 | Stolen Bases | 0 |
| 2 | Walks | 1 |
| 0 | Catcher Interference | 0 |
| 1 | Runs | 8 |
| 1 | Ground Into Double Play | 0 |
| 0 | Sacrifice Flies | 0 |
| 31 | At Bats | 36 |
| 1 | Home Runs | 3 |
| 0 | Grand Slam Home Runs | 0 |
| 11 | Runners Left On Base | 11 |
| 0 | Triples | 1 |
| 0 | Game Winning RBIs | 1 |
| 0 | Intentional Walks | 0 |
| 1 | Doubles | 4 |
| 12 | Fly Balls | 16 |
| 0 | Caught Stealing | 0 |
| 143 | Pitches | 128 |
| 0 | Games Started | 0 |
| 0 | Pinch At Bats | 0 |
| 0 | Pinch Hits | 0 |
| 0.0 | Player Rating | 0.0 |
| 1 | Is Qualified | 1 |
| 0 | Is Qualified In Steals | 0 |
| 8 | Total Bases | 27 |
| 33 | Plate Appearances | 37 |
| 162.0 | Projected Home Runs | 486.0 |
| 2 | Extra Base Hits | 8 |
| 0.7 | Runs Created | 8.9 |
| .129 | Batting Average | .333 |
| .000 | Pinch Hit Average | .000 |
| .258 | Slugging Percentage | .750 |
| .194 | Secondary Average | .444 |
| .182 | On Base Percentage | .351 |
| .440 | OBP Pct + SLG Pct | 1.101 |
| 0.8 | Ground To Fly Ball Ratio | 0.8 |
| 0.7 | Runs Created Per 27 Outs | 10.0 |
| 13.0 | Batter Rating | 63.5 |
| 31.0 | At Bats Per Home Run | 12.0 |
| 0.00 | Stolen Base Percentage | 0.00 |
| 4.33 | Pitches Per Plate Appearance | 3.46 |
| .129 | Isolated Power | .417 |
| 0.22 | Walk To Strikeout Ratio | 0.14 |
| .061 | Walks Per Plate Appearance | .027 |
| .065 | Secondary Average Minus Batting Average | .111 |
| 2.0 | Runs Produced | 16.0 |
| 1.0 | Runs Ratio | 1.0 |
| 0.3 | Patience Ratio | 0.8 |
| 0.1 | Balls In Play Average | 0.3 |
| 64.5 | MLB Rating | 106.5 |
| 0.0 | Offensive Wins Above Replacement | 0.0 |
| 0.0 | Wins Above Replacement | 0.0 |
Game Information
Location: Kansas City, Missouri
Attendance: 17,650 | Capacity:
2025 American League East Standings
| TEAM | W | L | PCT | GB | STRK |
|---|---|---|---|---|---|
Toronto |
94 | 68 | .580 | - | W4 |
New York |
94 | 68 | .580 | - | W8 |
Boston |
89 | 73 | .549 | 5 | W1 |
Tampa Bay |
77 | 85 | .475 | 17 | L4 |
Baltimore |
75 | 87 | .463 | 19 | L3 |
2025 American League Central Standings
| TEAM | W | L | PCT | GB | STRK |
|---|---|---|---|---|---|
Cleveland |
88 | 74 | .543 | - | W2 |
Detroit |
87 | 75 | .537 | 1 | L1 |
Kansas City |
82 | 80 | .506 | 6 | W2 |
Minnesota |
70 | 92 | .432 | 18 | L1 |
Chicago |
60 | 102 | .370 | 28 | W1 |


BAL
KC
Toronto
New York
Boston
Tampa Bay
Cleveland
Detroit
Minnesota
Chicago