"Everybody in the whole entire league knows that he has a cannon for an arm," Aviles said. "When the ball got hit I was running toward the hole and I thought for sure he was going to score. He came in charging hard and made a great throw home. That was a big momentum swing."
Pierzynski saw third base coach Jeff Cox waving him home.
"I know Guillen has one of the best arms in baseball. My job is to run until somebody stops me. Cox was waving me and he threw a perfect throw."
Esteban German hit a go-ahead, two-run double in the eighth inning for Kansas City. German was 3-for-3 with two RBIs and Aviles had three hits for the Royals, who have won five of their last seven games.
Jim Thome doubled in the seventh inning for his 2,000th career hit and Joe Crede hit a three-run homer for the White Sox, who have lost five times in seven games. Nick Swisher also hit a two-run homer for the White Sox.
With the Twins losing to Texas, the White Sox held on to a half-game lead in the AL Central.
"We played terrible," White Sox manager Ozzie Guillen said. "Kansas City showed up to kick our butts and they did."
Trailing 6-5, Thome led off the seventh inning with a double off Ramirez. One out later, Swisher hit his 13th home run of the season to put the White Sox up 7-6.
But the White Sox bullpen couldn't hold the lead in the eighth.
Trailing 7-6 with one out in the eighth inning, White Sox reliever Octavio Dotel hit pinch-hitter Jose Guillen on the hand. With two outs, White Sox reliever Matt Thornton (4-2) walked Ross Gload and German followed with a double down the left-field line to give the Royals the lead for good.
White Sox starter John Danks came into the game with a 2.67 ERA but he gave up four consecutive hits to start the game, including a two-run single to David DeJesus and Ross Gload to give the Royals a 4-0 lead.
"Danks is a pretty tough pitcher," said Aviles. "We got to him early and we never gave him a chance to settle in. That's big for us right there."
The White Sox scored two runs in the bottom of the first off Royals starter Brian Bannister. Thome had an RBI single and Bannister hit Swisher with a pitch with the bases loaded.
Crede hit a three-run home run off Bannister in the third inning to tie the game at five. It was his 17th of the season.
Mike Aviles hit an RBI single off White Sox start Danks in fourth inning to give the Royals a 6-5 lead.
After Dye was hit, White Sox manager Ozzie Guillen threw his towel in disgust before going out to the field to check on Dye. The team said Dye has a bruised right knee. X-rays were negative and he is listed day-to-day.
"I don't expect him to play tomorrow. He got hit pretty good, hopefully it might only take a couple of days," said Ozzie Guillen.
Dye was also hit by a pitch on Saturday night by Ramirez.
In the top of the fifth inning, Carassco, called up from Triple-A Charlotte before the game, threw an inside pitch on Billy Butler. Home plate umpire Mike Reilly warned both benches which infuriated Guillen, who slammed a water bottle on the ground.
"I don't like the way they were hitting my players. They hit six guys this week and all of a sudden the umpires give a warning. I was kind of upset about it," Ozzie Guillen said.
Danks gave up six runs and nine hits in four innings.
Before the game, the White Sox placed Jose Contreras on the DL with right elbow tendinitis. ... Before the game, the White Sox honored Harold Baines with a life-sized sculpture on the right field concourse and wore 1983 throwback uniforms. Baines, in his fifth season as a coach with the club, played 14 seasons with the White Sox and had his number retired in 1989. ... Nick Masset will take Contreras' spot in the rotation on Tuesday against the Rangers. ... After the game, the White Sox optioned RHP Adam Russell to Triple-A Charlotte. A corresponding move will be made before Monday's game against the Rangers.