The Sox jumped out to a 1-0 lead in the first inning after Jose Valentin tripled and later scored on a Magglio Ordonez sacrifice fly.
Then, they took the field. Garland started the inning safe enough with a strikeout and flyout, but a walk and wild pitch later was followed by an infield single under the glove of Paul Konerko at first, and back-to-back RBI-singles by Dee Brown and Ken Harvey.
Now up 2-1 with men on the corners, a groundball deep in the hole at shortstop was caught by Valentin but thrown away on a force out attempt at second. It was credited as a hit, and an error on the throw. Brown scored on the play to put the Royals up 3-1.
A Carlos Lee infield single, Joe Crede double and Armando Rios sacrifice fly in the second put the Sox within one, but the Royals came right back with another run in their half. Rios, who started in center in place of Aaron Rowand, went 0-3.
With a man on first, D'Angelo Jimenez bobbled a grounder on the double play attempt to put men at first and second. Mike Sweeney then singled to put the Royals up 4-2.
Jose Valentin put the Sox down by one with the first of his home runs in the fifth, and gave the Sox the lead with the second in the seventh.
That was all for the Sox as a seven-run eighth inning, six with two outs, put the Sox in a big six-run hole with only an inning and no relievers left in the bullpen.
Tom Gordon was charged for one run, Damaso Marte for two runs and Billy Koch four runs (two earned). Rick White finished the inning. Gary Glover and Kelly Wunsch pitched earlier in the game; Glover went 1 2/3 scoreless innings, while Wunsch retired the one batter he faced.
Kris Wilson and Ryan Bukvich each threw two innings in relief of Royals' starter Miguel Asencio, who gave up four runs in six innings.
Third baseman Joe Crede went 2-4, while Paul Konerko went 0-4 with two key defensive misplays.
The Sox will now take their 0-3 record to U.S. Cellular Field on Friday against the Detroit Tigers. Gametime is 3:05 p.m. CT and will feature Esteban Loaiza going up against Nate Cornejo.