No spoilers!

The Royals can't stop the White Sox from clinching a spot in the postseason.

No spoilers!

The Royals were easily dismantled by the Chicago White Sox on Thursday afternoon. The Sox charged to a lead three batters in to the game, one they would not relinquish en route to a 9-1 victory. With the win, Chicago clinched a winning season and a spot in the postseason tournament. Their final destination has not been totally settled as they can still win the AL Central.

That was a difficult paragraph to type, as I am still trying to come to grips with the fact the Royals squandered an opportunity and the White Sox—the White Sox!—seized one that no one expected them to have. Another winter of tinkering in the margins of the Royals roster yielded another underwhelming and disappointing season. And when the moment presented itself for the team to finally impact the postseason races, they folded, reminding all of us that the Royals were simply never good enough in 2026.

The Sox sent eight to the plate in the top of the first. They opened the game single, sac bunt reaching on an error, wild pitch and single. That sequence unfolded on a total of six pitches from Royals starter Randy Dobnak. Chicago was aggressive, swinging as though they wanted to erase all doubt. It worked.

After Dobnak struck out Munetaka Murakami in an extended—for the inning—five pitch battle, the White Sox lineup went back to work, plating two more runs on the next three pitches. That sequence was sac fly, steal and single.

It wasn’t as if Dobnak was serving meatballs. He was making good pitches. The aggressive approach at the plate certainly served Chicago well. These were the pitches the White Sox batters put in play in the first against Dobnak.

He was certainly staying out of the middle in the first. And he was getting his usual assortment of ground balls.

The second inning where Dobnak allowed three more runs was a bit more frustrating. In that inning the sequence was single, walk on five uncompetitive pitches, botched pickoff attempt, hit by a pitch on an 0-2 count and single. The first out of the inning was a fielder’s choice that also resulted in a run. Dobnak’s day was done and that was six total runs for Chicago before the second inning was complete and the Royals weren’t coming back.

As currently constructed, the Royals bullpen contains just two relievers who were on the Opening Day roster six months ago. (I am not counting Daniel Lynch IV who is now in the starting rotation.) There’s always going to be reliever churn in a season, but that’s a lot. So once Dobnak was lifted after allowing six runs in 1.1 innings of work, a cavalcade of bullpen arms were at hand.

Anthony Gose was first up, summoned to put out that second inning fire started by Dobnak. The lefty got the final two outs to close the inning without further damage then worked around a leadoff double in the third. He’s now made 13 appearances with the Royals and has thrown 13 innings without allowing a run. He struck out three on Thursday which brought his season total to seven against just two walks. In other words, he’s pitching to contact and finding success. Opposing hitters own a .211 batting average against Gose with a .229 BABIP.

I did not imagine Anthony Gose as a shutdown reliever for the Royals. He opened the season pitching for Leones de Yucatan in the Mexican League for crying out loud.

Gose was followed on the bump by Alex Lange, one of those two pitchers (along with Lucas Erceg) to have survived the season in the bullpen. Lange’s inning was predictably bumpy as he went home run, walk, single, walk and fielder’s choice as the White Sox tacked on two more runs.

This has been Lange’s worst season of his major league career, posting -0.6 fWAR with a 6.18 ERA. He’s eligible for arbitration. I doubt the Royals tender him a contract.

After Lange it was Jose Cuas. Cuas, back in Kansas City after stops in Chicago with the Cubs and in Toronto, has continued to find control elusive. On Thursday he walked three batters in the fifth inning, with the last of those free passes bringing home a run.

Cuas did pitch a clean sixth before yielding to Spencer Bivens. Bivens is the newest member of the bullpen, joining the club after being designated for assignment earlier this month by the San Francisco Giants. Bivens was recalled on September 19 when the Royals placed Craig Kimbrel on the bereavement list. He was optioned to the ACL Royals two days later when the team activated Tony Gonsonlin. He rejoined the team when Steven Cruz went on the paternity list.

What a roster.

Credit where it's due: Bivens looked good, getting a first pitch strike on six of seven batters he faced and getting a 38 percent overall whiff rate while striking out four. Although there may have been some “hurry up” in the White Sox approach at the plate. As in “hurry up, we have some bottles to pop.”

Nolan Hoffman had the ninth inning. He allowed a double and hit a batter but otherwise was unscathed.

I honestly don’t know the point behind recapping the relievers in this mess of a ballgame except to underline this was a mess of a season. If you stuck with me through this, thank you. And I’m sorry.

Salvador Perez hit his 20th home run of the year. It marked the 10th time in the last 11 seasons he’s played where Perez has left the yard at least 20 times. He missed the 2019 season after Tommy John surgery and then there was the truncated season of 2020. It’s amazing he’s kept this up for so long.

Yet there’s no denying that, while he hit that milestone that represents a bit of consistency, the 2026 season has been a very bad one for the Royals captain. His .272 on base percentage is a career low. Likewise his .378 slugging percentage. And the same for his 80 OPS+ and his -0.7 bWAR. Among qualified hitters, Perez’s 74 wRC+ is the third worst in the majors this year.

I wrote at the beginning of the season that a successful and productive Royals lineup would feature Perez hitting lower in the batting order. Going forward, not only does Perez need to hit seventh or eighth, the Royals need to figure a way to limit his at bats. He simply cannot have 600-plus plate appearances while hitting in the heart of the order next year if the Royals are serious about contending.

There are probably some difficult—but necessary—discussions to be had this winter about what could be Salvador Perez's final season as a Kansas City Royal.

So the White Sox got to break out the ski goggles and pop the champagne in the visitor’s clubhouse. Congrats to them, I guess. The good news is, there won’t be a repeat celebration with the Cleveland Guardians up for the final series of the season. They also clinched on Thursday, in a 1-0 victory over the Boston Red Sox. Their lone run came on a home run that curled around the Pesky Pole in right field. It went 319 feet, had an expected batting average of .160 and would’ve been a home run only at Fenway. And it got the Guardians into the postseason. Baseball is nuts.

I suppose there could be another celebration if the Guardians clinch the Central Division. That’s kind of important as the winner of the AL Central will earn a bye. Which seems insane. They should make the winner play someone…anyone…as punishment for being mediocre.

Meanwhile, I’m rooting for the winner of the AL West to finish below .500.

Here are the probables for the final series of 2026:

Fri - RHP Gavin Williams (14-8, 3.63) vs. LHP Noah Cameron (9-8, 3.92) at 6:40 p.m.
Sat - RHP Tanner Bibee (6-15, 4.35) vs. RHP Michael Wacha (9-9, 3.33) at 6:10 p.m.
Sun - TBA vs. LHP Daniel Lynch IV (6-6, 4.13) at 2:10 p.m.

It's crazy to think there are just three games left in the 2026 season. It's gone by incredibly quickly, although watching this team for the better part of six months, it seems like the time is right to finally pull the plug on the year. And then we'll all be missing baseball on Tuesday when the seven o'clock hour rolls around and we should be watching the Royals.