Eric Hosmer's RBI double over the head 6, in the second game of a four-game series.
Hosmer's double capped off a 3-for-5 night. Mike Moustakas went 3-for-4 with a two-run home run while Jeff Francoeur was 3-for-4 with two RBI and two runs scored for the Royals.
Royals starter Felipe Paulino lasted six innings, surrendering three runs on seven hits, while walking three and fanning three.
Greg Holland (5-1) pitched a flawless ninth, fanning two, as the Royals won their season-high sixth straight.
In the ninth, Matt Thornton (1-5) allowed a leadoff base hit to Alex Gordon. Melky Cabrera followed by bunting him over to second. After an intentional walk to Billy Butler, Hosmer drove in the game-winner.
"It was a good win for us tonight," said Hosmer. "Gordo's (Alex Gordon) at-bat in the last inning there--fighting off tough pitches, laying off tough pitches, getting on leading off--set the tone for us. That's what he's been doing all year."
The White Sox have gone 5-12 since their five-game winning streak, which matched a season-high. They've lost six straight.
In the first, A.J. Pierzynski hit a sacrifice fly to left field to bring home Juan Pierre for the game's first run.
The Royals struck back and scored two in the home half of the frame on RBI singles from Butler and Francoeur while Chicago tied it in the third on an RBI groundout from Paul Konerko.
Kansas City exploded for three runs in the fourth. Hosmer started it off with a single, followed by stealing second and scored on Francoeur's single to center. Mike Moustakas then hit a two-run home run to right to make it 5-2.
Chicago clawed within two in the fifth. Alexei Ramirez reached on a two-out roller down the third-base line when Moustakas was unable to make the bare- handed play. This brought home Beckham, who got on with a single.
Francoeur started the sixth with his third single of the contest and later crossed home plate on a Johnny Giavotella fielder's choice.
The White Sox chipped away again in the seventh with Pierzynski's RBI single to center field, bringing home Beckham for his third run of the game.
Chicago finally broke through to tie it up in the eighth with a Brent Morel two-run home run to left.
"It's tough. We haven't been playing very good lately, but we never gave up today," said Morel. "We came back and tied up the game, then I had an opportunity there at the end. I've just got to keep fighting and put ourselves with a chance to win."
The Royals walk-off win was the 12th this season...Kansas City had three stolen bases on the night...Humber was 1-0 with a 1.26 ERA in his previous three starts...Chicago designated hitter Adam Dunn is 3-for-84 against left- handers. He went 0-for-4 on Friday.