KANSAS CITY, Mo. -- Jordan Danks just had to wait a short while for a second chance.
"I knew that was going to be my shot to do something," Danks said. "I wasn't trying to do too much. But you got a guy throwing 97, 98 (mph), he's going to provide most of the power. Like coaches have been telling you since Little League, get something good to hit."
Danks connected with two outs off Kelvin Herrera (2-3) for his first homer of the season. The White Sox avoided a three-game sweep and won for only the fifth time in 18 tries in Kauffman Stadium.
Danks entered in the ninth as a pinch-runner. Moments later, he got caught in a rundown between third and home after Alexei Ramirez hit a tying, bases-loaded infield single with two outs.
"It makes it a little bit better, yeah," Danks said with a grin. "I told them I did it on purpose so I could come up and hit a homer."
"That's always fun to watch," Sale said. "Emotions are high. You're tense. Someone goes up and does that, it's fun."
The White Sox trailed 1-0 before loading the bases with no outs in the ninth. After Paul Konerko grounded into a home-to-first double play, Danks entered as a pinch-runner at second base for Adam Dunn.
Conor Gillaspie was intentionally walked to load the bases. Ramirez followed with an infield single up the middle that made it 1-all, but Danks was tagged out on the play, ending the rally.
"He got caught in no man's land," White Sox manager Robin Ventura said. "Even in the dugout, you're thinking about trying to send him. It's too late to tell him to stop. That wasn't his fault. That's on us. That's just an aggressive play. I'd rather be like that than not be aggressive."
Shields threw eight shutout innings and handed a 1-0 lead to Greg Holland starting the ninth.
Royals manager Ned Yost said he was not tempted to let Shields work the ninth.
"Everybody has their job to do and Shields had done his," Yost said. "He threw eight shutout innings. It was a one-run game. The runs make all the difference. If it was a two-run or a three-run lead, yeah. But in a one-run game, (if) you send him out he's either going to win it or lose it. You let the closer go out and try to do his job."
Shields, who lost to Sale 1-0 on opening day in Chicago, allowed two hits and struck out a season-best nine. He walked two.
"I felt good out there," Shields said. "I felt like I had all my pitches working. I struggled early in the game getting ahead of hitters, and I gave up a couple of walks. But for the most part it was a tough battle. When you're facing Sale, it's going to be tough."
Sale was almost as sharp, going 7 1/3 innings and allowing one run on six hits, with five strikeouts and no walks.
"I kind of fell into a groove," Sale said. "Sweeps will kill you. James Shields was awesome, actually. But to keep our heads in the game and grind it out, it says a lot about who we are."
After Gordon's two-out single in the third, Sale retired 15 straight batters until Salvador Perez doubled into the gap with two out in the seventh.
The White Sox announced that RHP Gavin Floyd will undergo season-ending surgery in New York on Tuesday. ... RHP Jake Peavy, who missed his last two scheduled starts with back spasms, is set to start for Chicago on Wednesday against the New York Mets. ... This was the makeup for the game that was postponed the previous Friday because of freezing rain. ... Sale threw 34 pitches in the first inning, including 12 to Mike Moustakas before he popped out on a 3-2 offering. ... 3B Gillaspie made an outstanding play on a hard-hit grounder by Alcides Escobar to end the fifth. ... The White Sox are in the midst of playing 15 of 18 away from U.S. Cellular Field. ... With one out in the 10th, Dewayne Wise singled but was cut down by Royals RF Jeff Francoeur when he overslid the bag at second. With one out in the 11th, Alex Rios singled but was caught trying to steal second.