Vancouver Television Sports← GAME CENTRE
← MLB / AFTER THE WHISTLE

MLB • September 20, 2026

Rafael Flores Jr.’s eighth-inning homer lifts Pirates past Royals after Kansas City’s late surge

For most of Sunday at PNC Park, this was a one-run game waiting for one more swing. The last and biggest belonged to Rafael Flores Jr., whose eighth-inning two-run homer sent the Pittsburgh Pirates past the Kansas City Royals 4-3.

MLB / FINAL
Kansas City Royals3 — 4Pittsburgh Pirates
Kansas City RoyalsPittsburgh Pirates

Early edge, then a long grind back

Kansas City opened the scoring before Pittsburgh had settled in. Salvador Perez lined a first-inning single to center that brought home Bobby Witt Jr. and moved Jac Caglianone to second, giving the Royals a quick 1-0 lead. For a while, that looked like it might be enough support for a club that collected nine hits on the day. Instead, the game spent most of the afternoon proving how little room there was between the teams. The Royals left 12 runners on base. The Pirates left 18. There was traffic almost everywhere, but clean separation nowhere.

Pittsburgh finally erased the deficit in the fourth when Oneil Cruz drove a 420-foot homer to center, and the Pirates nudged ahead in the sixth on Spencer Horwitz’s single to center that scored Ryan O’Hearn. That inning captured the shape of the game: Pittsburgh did not overwhelm Kansas City with contact, but it kept enough pressure on the Royals’ pitching to make every inning feel unfinished. Michael Wacha’s line was respectable at 5.2 innings with four hits and two runs allowed, yet the four walks and 113 pitches told the other half of the story. The Pirates kept making the Royals work.

The lead changed hands in two swings

Kansas City’s best answer came in the seventh, and it came all at once. Vinnie Pasquantino turned a one-run deficit into a one-run lead with a two-run homer to right-center, scoring John Rave and pushing the Royals in front 3-2. In a game where runs had been so hard to stack, that felt like the kind of blow that should stand. Pasquantino finished with one at-bat, one hit and two RBIs, which is a compact line but a massive contribution.

It still was not the game’s final turn. In the eighth, Pittsburgh found the bigger swing. Rafael Flores Jr. drove a 426-foot homer to left, Ronny Simon scored ahead of him, and the Pirates moved back in front 4-3. That was the sequence that defined the afternoon, not only because it changed the score for good, but because it punished the one stretch in which Kansas City’s relief work cracked. Nate Pearson allowed three hits and two runs in two-thirds of an inning, and Pittsburgh needed every bit of that opening. Mason Montgomery then handled the ninth for the save, preserving a game that never gave either side much breathing room.

Our take: patience mattered as much as power

Our take: Pittsburgh won this game by making the Royals pitch a heavier game than Kansas City made the Pirates pitch. The Pirates drew five walks, saw 182 pitches and sent Wacha to 113 pitches before the sixth inning was complete. That does not mean every plate appearance was sharp, especially with 18 runners left on base, but it does explain why Kansas City had to patch together the final 2.1 innings with multiple relievers. In a one-run game, that accumulation matters. If the Royals are looking for the most fixable part of this loss, it starts with trimming the free passes and the extended counts that kept Pittsburgh alive long enough for the late homer.

Our take on Kansas City’s offense is a little harsher, because the Royals had enough chances to leave with more than three runs. They out-hit Pittsburgh 9-8, got two hits from Caglianone, two more from Perez and put Witt on the board early, yet still left 12 men on base and drew only one walk. The lineup did produce the biggest hit of its day with Pasquantino’s seventh-inning homer, but before that it had managed just one scoring play despite steady traffic. When a club reaches base that often and still needs one swing late to get its second and third runs, the obvious area for improvement is converting those middle innings into more than isolated moments.

Pittsburgh’s staff bent less often

The Pirates’ pitching line is not spotless, but it is easier to trust because it stayed out of its own way. Lake Bachar gave up the first-inning run, then Yohan Ramirez delivered two scoreless innings with four strikeouts, Wilber Dotel followed with two more scoreless frames, and Pittsburgh carried a tie game into the middle innings without letting Kansas City tack on. Carmen Mlodzinski covered three innings and paid for the Pasquantino homer, but even there the damage stopped at two runs. Across the full game, Pittsburgh’s staff allowed nine hits but only one walk, and that difference in free baserunners stood out.

Kansas City’s staff had stronger strikeout numbers, with nine punchouts, but the shape of the day was rougher. Wacha walked four in 5.2 innings, Connor Thomas added another walk in relief, and the Royals’ pitchers were pushed to 182 total pitches. The bridge work from Nolan Hoffman, Thomas and Jose Cuas kept the game within reach, yet the margin for error was gone by the time Pearson entered. That is why this result feels fair, even if it was close. Pittsburgh hit two home runs to Kansas City’s one, accepted the extra traffic the Royals offered, and found the decisive swing after surrendering the lead. In a 4-3 game, that is usually enough to explain everything that mattered.

Scoring moments

  1. 1st Inning

    Perez singled to center, Witt Jr. scored, Caglianone to second.

  2. 4th Inning

    Cruz homered to center (420 feet).

  3. 6th Inning

    Horwitz singled to center, O'Hearn scored, Flores Jr. to second.

  4. 7th Inning

    Pasquantino homered to right center (390 feet), Rave scored.

  5. 8th Inning

    Flores Jr. homered to left (426 feet), Simon scored.

Kansas City Royals — Batting
PlayerH-ABABRHRBIHRBBK#PAVGOBPSLG
Maikel Garcia0-4400000114.258.313.371
Bobby Witt Jr.1-4411000113.279.359.440
Jac Caglianone2-3302001012.282.335.486
Salvador Perez2-4402100113.227.271.374
Michael Massey0-4400000118.274.307.436
Nick Loftin1-4401000011.240.324.380
John Rave1-4411000218.228.315.441
Luke Maile1-4401000219.171.244.293
Tyler Tolbert0-2200000012.288.353.400
Vinnie Pasquantino1-111121004.244.330.406
Kyle Isbel0-000000000.218.263.321
Isaac Collins0-110000004.217.323.329
Kansas City Royals — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Michael Wacha5.2422451113-783.33113
Nolan Hoffman0.10000105-33.865
Connor Thomas0.210011026-158.8526
Jose Cuas0.10000107-42.217
Nate Pearson0.232201125-183.4325
Anthony Gose0.10000006-50.006
Pittsburgh Pirates — Batting
PlayerH-ABABRHRBIHRBBK#PAVGOBPSLG
Konnor Griffin1-5501000119.267.322.389
Brandon Lowe1-4401001130.262.332.492
Bryan Reynolds1-3301001116.262.365.423
Oneil Cruz1-4411110014.280.367.490
Nick Gonzales0-4400000120.302.365.389
Jared Triolo0-000000000.241.311.307
Ryan O'Hearn1-3311001120.264.331.443
Ronny Simon0-001000000.313.353.438
Rafael Flores Jr.2-3312211117.286.354.556
Spencer Horwitz1-4401100221.248.346.367
Jake Mangum0-3300001125.279.336.370
Pittsburgh Pirates — Pitching
PlayerIPHRERBBKHRPC-STERAPC
Lake Bachar1.031101020-143.5620
Yohan Ramirez2.010004030-192.9330
Wilber Dotel2.010001032-214.5832
Carmen Mlodzinski3.032211145-263.9545
Mason Montgomery1.010001011-82.5911
Kansas City Royals — Team statistics
Batting · Games Played1
Batting · Team Games Played1
Batting · Hit By Pitch0
Batting · Ground Balls18
Batting · Strikeouts8
Batting · Runs Batted In3
Batting · Sacrifice Hit0
Batting · Hits9
Batting · Stolen Bases1
Batting · Walks1
Batting · Catcher Interference0
Batting · Runs3
Batting · Ground Into Double Play1
Batting · Sacrifice Flies0
Batting · At Bats35
Batting · Home Runs1
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base12
Batting · Triples0
Batting · Game Winning RBIs0
Batting · Intentional Walks0
Batting · Doubles1
Batting · Fly Balls9
Batting · Caught Stealing0
Batting · Pitches138
Batting · Games Started0
Batting · Pinch At Bats2
Batting · Pinch Hits1
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals1
Batting · Total Bases13
Batting · Plate Appearances36
Batting · Projected Home Runs162.0
Batting · Extra Base Hits2
Batting · Runs Created3.4
Batting · Batting Average.257
Batting · Pinch Hit Average.500
Batting · Slugging Percentage.371
Batting · Secondary Average.171
Batting · On Base Percentage.278
Batting · OBP Pct + SLG Pct.649
Batting · Ground To Fly Ball Ratio2.0
Batting · Runs Created Per 27 Outs3.4
Batting · Batter Rating27.0
Batting · At Bats Per Home Run35.0
Batting · Stolen Base Percentage1.00
Batting · Pitches Per Plate Appearance3.83
Batting · Isolated Power.114
Batting · Walk To Strikeout Ratio0.13
Batting · Walks Per Plate Appearance.028
Batting · Secondary Average Minus Batting Average-.086
Batting · Runs Produced6.0
Batting · Runs Ratio1.0
Batting · Patience Ratio0.4
Batting · Balls In Play Average0.3
Batting · MLB Rating79.0
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves0
Pitching · Ground Balls6
Pitching · Strikeouts9
Pitching · Sacrifice Flies0
Pitching · Losses1
Pitching · Hits8
Pitching · Earned runs4
Pitching · Batters Hit0
Pitching · Walks5
Pitching · Runs4
Pitching · Stolen Bases0
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities1
Pitching · Home Runs2
Pitching · Triples0
Pitching · Finishes1
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls18
Pitching · Batters Faced38
Pitching · Holds2
Pitching · Doubles2
Pitching · Wins0
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches0
Pitching · Runs Batted In4
Pitching · Third Innings Pitched24
Pitching · Earned Runs4
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches182
Pitching · Run Support3.0
Pitching · Catcher Interference0
Pitching · Pitches As Starter113
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts0
Pitching · Inherited Runners5
Pitching · Inherited Runners Scored0
Pitching · Player Rating0.0
Pitching · At Bats33
Pitching · Total Bases16
Pitching · Is Qualified1
Pitching · Is Qualified1
Pitching · Full Innings8
Pitching · Partial Innings0
Pitching · Blown Saves1
Pitching · Innings pitched8.0
Pitching · Earned Run Average4.50
Pitching · Walks Plus Hits Per Inning Pitched1.63
Pitching · Win Percentage.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio0.3
Pitching · Pitches Per Start113.0
Pitching · Pitches Per Inning22.8
Pitching · Pitches Per Plate Appearance4.8
Pitching · Run Support Average3.4
Pitching · Opponent Batting Average.242
Pitching · Opponent's Slugging pct..485
Pitching · Opponent's On-base pct..342
Pitching · Opponent's OPB Pct + SLG Pct.827
Pitching · Save Percentage0.0
Pitching · Strikeouts Per 9 Innings10.1
Pitching · Strikeout To Walk Ratio1.8
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win0.0
Pitching · Balls In Play Average0.286
Pitching · Total Bases16.000
Pitching · Pitch Count182
Pitching · Strikes123
Pitching · Strike To Pitch Ratio0.7
Pitching · Wins Above Replacement0.0
Fielding · Games Played1
Fielding · Team Games Played1
Fielding · Double Plays0
Fielding · Opportunities0
Fielding · Errors1
Fielding · Passed Balls0
Fielding · Assists3
Fielding · Outfield Assists0
Fielding · Pickoffs0
Fielding · Putouts24
Fielding · Outs On Field24
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played24.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed0
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher1
Fielding · Successful Chances0
Fielding · Total Chances0
Fielding · Full Innings0
Fielding · Part Innings Played0
Fielding · Fielding Percentage0.000
Fielding · Range Factor0.0
Fielding · Zone Rating0.0
Fielding · Caught Stealing Percentage0.000
Fielding · Earned Run Average0.0
Fielding · Defensive Wins Above Replacement0.0
Pittsburgh Pirates — Team statistics
Batting · Games Played1
Batting · Team Games Played1
Batting · Hit By Pitch0
Batting · Ground Balls6
Batting · Strikeouts9
Batting · Runs Batted In4
Batting · Sacrifice Hit0
Batting · Hits8
Batting · Stolen Bases0
Batting · Walks5
Batting · Catcher Interference0
Batting · Runs4
Batting · Ground Into Double Play0
Batting · Sacrifice Flies0
Batting · At Bats33
Batting · Home Runs2
Batting · Grand Slam Home Runs0
Batting · Runners Left On Base18
Batting · Triples0
Batting · Game Winning RBIs1
Batting · Intentional Walks0
Batting · Doubles2
Batting · Fly Balls18
Batting · Caught Stealing0
Batting · Pitches182
Batting · Games Started0
Batting · Pinch At Bats0
Batting · Pinch Hits0
Batting · Player Rating0.0
Batting · Is Qualified1
Batting · Is Qualified In Steals0
Batting · Total Bases16
Batting · Plate Appearances38
Batting · Projected Home Runs324.0
Batting · Extra Base Hits4
Batting · Runs Created5.7
Batting · Batting Average.242
Batting · Pinch Hit Average.000
Batting · Slugging Percentage.485
Batting · Secondary Average.394
Batting · On Base Percentage.342
Batting · OBP Pct + SLG Pct.827
Batting · Ground To Fly Ball Ratio0.3
Batting · Runs Created Per 27 Outs6.2
Batting · Batter Rating34.0
Batting · At Bats Per Home Run16.5
Batting · Stolen Base Percentage0.00
Batting · Pitches Per Plate Appearance4.79
Batting · Isolated Power.242
Batting · Walk To Strikeout Ratio0.56
Batting · Walks Per Plate Appearance.132
Batting · Secondary Average Minus Batting Average.152
Batting · Runs Produced8.0
Batting · Runs Ratio1.0
Batting · Patience Ratio0.6
Batting · Balls In Play Average0.3
Batting · MLB Rating83.8
Batting · Offensive Wins Above Replacement0.0
Batting · Wins Above Replacement0.0
Pitching · Games Played1
Pitching · Team Games Played1
Pitching · Saves1
Pitching · Ground Balls18
Pitching · Strikeouts8
Pitching · Sacrifice Flies0
Pitching · Losses0
Pitching · Hits9
Pitching · Earned runs3
Pitching · Batters Hit0
Pitching · Walks1
Pitching · Runs3
Pitching · Stolen Bases1
Pitching · Caught Stealing0
Pitching · Sacrifice Bunts0
Pitching · Save Opportunities1
Pitching · Home Runs1
Pitching · Triples0
Pitching · Finishes1
Pitching · Balks0
Pitching · Intentional Walks0
Pitching · Fly Balls9
Pitching · Batters Faced36
Pitching · Holds0
Pitching · Doubles1
Pitching · Wins1
Pitching · Complete Games0
Pitching · Perfect Games0
Pitching · Wild Pitches0
Pitching · Runs Batted In3
Pitching · Third Innings Pitched27
Pitching · Earned Runs3
Pitching · Shutouts0
Pitching · Pickoff Attempts0
Pitching · Pitches138
Pitching · Run Support4.0
Pitching · Catcher Interference0
Pitching · Pitches As Starter20
Pitching · Games Started1
Pitching · Game Score0.0
Pitching · Quality Starts0
Pitching · Inherited Runners0
Pitching · Inherited Runners Scored0
Pitching · Player Rating0.0
Pitching · At Bats35
Pitching · Total Bases13
Pitching · Is Qualified1
Pitching · Is Qualified1
Pitching · Full Innings9
Pitching · Partial Innings0
Pitching · Blown Saves0
Pitching · Innings pitched9.0
Pitching · Earned Run Average3.00
Pitching · Walks Plus Hits Per Inning Pitched1.11
Pitching · Win Percentage1.000
Pitching · Caught Stealing Percentage0.0
Pitching · Ground To Fly Ball Ratio2.0
Pitching · Pitches Per Start20.0
Pitching · Pitches Per Inning15.3
Pitching · Pitches Per Plate Appearance3.8
Pitching · Run Support Average4.0
Pitching · Opponent Batting Average.257
Pitching · Opponent's Slugging pct..371
Pitching · Opponent's On-base pct..278
Pitching · Opponent's OPB Pct + SLG Pct.649
Pitching · Save Percentage1.0
Pitching · Strikeouts Per 9 Innings8.0
Pitching · Strikeout To Walk Ratio8.0
Pitching · Tough Losses0
Pitching · Cheap Wins0
Pitching · Save Opportunities Per Win1.0
Pitching · Balls In Play Average0.296
Pitching · Total Bases13.000
Pitching · Pitch Count138
Pitching · Strikes88
Pitching · Strike To Pitch Ratio0.6
Pitching · Wins Above Replacement0.0
Fielding · Games Played1
Fielding · Team Games Played1
Fielding · Double Plays3
Fielding · Opportunities0
Fielding · Errors1
Fielding · Passed Balls0
Fielding · Assists11
Fielding · Outfield Assists0
Fielding · Pickoffs0
Fielding · Putouts27
Fielding · Outs On Field27
Fielding · TP0
Fielding · Balls In Zone0
Fielding · Extra Bases0
Fielding · Outs Made0
Fielding · Hits0
Fielding · Total Bases0
Fielding · Games Started0
Fielding · Third Innings Played27.0
Fielding · Caught Stealing0
Fielding · Stolen Bases Allowed1
Fielding · Earned Runs0
Fielding · Qualified1
Fielding · Qualified Catcher1
Fielding · Qualified Pitcher1
Fielding · Successful Chances0
Fielding · Total Chances0
Fielding · Full Innings0
Fielding · Part Innings Played0
Fielding · Fielding Percentage0.000
Fielding · Range Factor0.0
Fielding · Zone Rating0.0
Fielding · Caught Stealing Percentage0.000
Fielding · Earned Run Average0.0
Fielding · Defensive Wins Above Replacement0.0