CHICAGO (AP) -- John Buck did more than just work the count.
"I went in there to try to take a lot of pitches and work the counts," Buck said. "I didn't come in trying to hit it out. I'm just trying to get better as a hitter."
Buck broke a 4-4 tie in the sixth with a 431-foot solo shot to center off reliever Felix Diaz for his first career multihomer game. He went 3-for-4 and is 15-for-34 with five home runs in his last eight games.
Jimmy Gobble (9-8) allowed four runs and eight hits in six-plus innings to remain the only Kansas City starter with a non-losing record. Gobble is 3-0 in five starts since being recalled from Class AAA Omaha on Aug. 29.
Mike MacDougal allowed Joe Crede's two-run double in the ninth, which made it 8-6. But with runners on first and second and nobody out, MacDougal got Aaron Rowand to pop up a bunt. Juan Uribe then grounded into a double play.
Joe Randa had three hits for the Royals, who have won five of eight.
Carlos Lee's 28th homer, a two-run shot in the first, gave the White Sox a 2-0 lead and was Chicago's franchise-record 221st home run of the season. The White Sox hit 220 last year.
The Royals bounced back with a three-run third, started by Buck's leadoff homer off Chicago starter Freddy Garcia.
"I've known this kid for a long time and I believe he's going to hit with some power," Kansas City manager Tony Pena said. "He's coming around. It took a while but he's feeling comfortable and you can see the result."
After Randa's RBI single, Matt Stairs hit a double to left-center field. Uribe's relay beat a sliding Randa to the plate, but catcher Jamie Burke couldn't hold onto the ball. Randa scored to give the Royals a 3-2 lead, and Burke was charged with an error.
"It is frustrating because that's the third time it has happened to me this year," Burke said.
Gobble gave up a leadoff homer to Uribe in the bottom of the third and then back-to-back singles by Lee and Paul Konerko. Ross Gload hit into a double play to score Lee and put the White Sox ahead 4-3.
"He had trouble at the beginning of the game," Pena said of Gobble. "He had a tough time finding his rhythm."
Calvin Pickering's sacrifice fly made it 4-all in the fifth.
Stairs homered off Diaz (2-5) in the seventh to make it 6-4, and
Abraham Nunez added a sacrifice fly in the eighth.
Donnie Murphy's run-scoring double in the ninth made it 8-4.
Garcia went just five innings, giving up four runs on six hits. He struck out six and walked three.
"I think the main thing about Freddy was that he couldn't find the plate. Everything he threw were balls and obviously he went real deep in the pitching counts early in the game," manager Ozzie Guillen said.
Garcia is 4-11 with a 4.46 ERA in 21 starts at night -- compared to 8-0 with a 2.72 ERA in nine day starts this year.
Buck came to Kansas City in a trade with Houston on June 24. ... Randa appeared shaken up after sliding into home in the third inning, but he stayed in the game. ... Angel Berroa was hit in the back by Diaz's pitch in the sixth inning. He was hit by a pitch Wednesday at Tampa Bay in the left shoulder and missed Thursday's game against the White Sox with a bruise. ... Diaz has allowed 13 home runs this season in 49 1/3 innings.