Chicago, IL – Alex Rios had three hits, including a two-run 3, in the second portion of a game set.
John Danks (8-12) lasted 7 1/3 innings, allowing three runs on six hits and a walk while striking out eight. He remains undefeated in 12 starts against the Royals, posting a 5-0 record.
"This is probably the best stuff I've had all year," Danks said.
Brent Morel also homered for Chicago, which snapped a five-game losing streak at U.S. Cellular Field.
Ernest Teaford (2-1) allowed five runs on six hits and three walks through five innings for the loss.
"I don't think I did very well at all," Teaford said about his performance. "I wasn't consistently down, I wasn't getting my offspeed over early in counts and I was just behind a lot."
Melky Cabrera drove in two runs for the Royals, losers in three of their last five games.
Chicago jumped out in front with a four-run second inning. After A.J. Pierzynski led off the frame with a single, Rios hammered a ball over the left-field wall. Walks by Adam Dunn and Morel around a Dayan Viciedo base hit loaded the bases. Juan Pierre worked a walk to push Dunn across the plate and Alexei Ramirez's sacrifice fly to left scored Viciedo.
The White Sox increased their lead in the fourth on Morel's leadoff homer into the left-field bleachers.
Johnny Giavotella singled and Lorenzo Cain walked in the sixth before Cabrera brought them both home with a double to the gap in left-center. Cabrera crossed the plate on an Eric Hosmer single two batters later to make it a 5-3 game.
Rios led off the eighth with a triple and came home when Morel grounded into a fielder's choice to cap the scoring.
Kansas City fell to 10-7 against Chicago this season...The Royals' Mike Moustakas went 0-for-3 to snap an 11-game hit streak...Chicago went 0-for-5 with runners in scoring position, while Kansas City went 2-for-3 with runners in scoring position.