Royals starter James Shields matched Jose Quintana for seven innings, and then the bullpens kept throwing up zeros.
The White Sox staff was just a little better Thursday night.
Six relievers kept the Royals off the scoreboard once Quintana left the game, and Conor Gillaspie's homer leading off the 12th inning finally boosted the White Sox a 4-3 victory and their first three-game sweep in Kansas City in more than four years.
"This was really frustrating. Shields had really good stuff," Royals manager Ned Yost said. "They had only two balls that were hit hard. The rest were well placed."
One that was hit hard was the tiebreaking shot by Gillaspie off Luke Hochevar (3-2), which carried just over the outstretched glove of right fielder Justin Maxwell. It bounced off signage behind the wall and back onto the field, and there was some confusion as to whether it was gone.
Replays showed the umpires correctly called it a home run.
The drive came after Jacob Petricka made his major league debut in the 11th inning for the White Sox, inheriting runners on first and second with nobody out. Petricka got Salvador Perez to ground into a double play to end the inning.
"I would have paid good money to get a big hit there," Yost said.
Addison Reed preserved Chicago's season-best sixth straight win, and the first of Petricka's career, when the he left the tying run on second base for his 34th save.
Reed walked Billy Butler to start the 12th, and pinch runner Jarrod Dyson swiped second base with nobody out. Reed recovered to strike out pinch hitter David Lough, and Chris Getz lined out to shortstop. Reed then retired Emilio Bonifacio on a lazy fly ball to end the game.
"It really takes away any overthinking of the situation," Petricka said of his pressure-packed first appearance in the majors. "You don't have time to think when you have the game-winning run at second. You just have to throw strikes and trust your stuff."
It was the fifth straight loss for Kansas City, and the eighth in 10 games overall. The slide came after a spirited early August surge that thrust the Royals into playoff contention.
Now, do the Royals have another run in them?
"We better," outfielder Alex Gordon said, "or else it'll be a long last month."
Emilio Bonifacio, Alcides Escobar and Jamey Carroll each drove in a run for the Royals in the fifth inning. Alexei Ramirez, Dayan Viciedo and Josh Phegley had RBIs for the White Sox.
Early on, though, Shields and Quintana were engaged in quite a pitching duel.
Shields worked around a pair of singles in the first, and then retired 10 straight batters before Avisail Garcia singled to lead off the fifth.
Quintana set down the first nine Royals he faced, including four strikeouts in the first two innings. His run ended with a leadoff single by Gordon in the fourth.
The Royals finally broke through in the fifth inning in very Royals-esque fashion.
The light-hitting club managed to load the bases on a walk by Butler and back-to-back singles by Maxwell and Mike Moustakas. Bonifacio followed with an RBI single, and Escobar and Carroll added back-to-back sacrifice flies to give the Royals a 3-0 lead.
Yep, three runs on a walk, three singles and two sacrifice flies.
The White Sox got two of the runs back in the sixth. The first came home on a one-out single by Ramirez, and the second on a blooper to center by Viciedo that fell just beyond the outstretched glove of Escobar retreating from shortstop and just in front of center fielder Dyson.
Phegley's double off first base and into right field tied it in the seventh.
Shields and Quintana were both done after seven innings. Shields allowed nine hits and struck out eight without a walk, while Quintana allowed four hits with seven strikeouts and one walk.
"You never want to get swept. We had a great effort tonight. We just have to keep grinding it out," Shields said. "We've got a lot of character in this team. We don't have any quit in us. We've just got to keep grinding it out."