CHICAGO -- This had not happened to the Royals for nearly five years.

Esteban German's two-run double in the eighth inning gave the Royals an 8-7 victory on Sunday over the Chicago White Sox at U.S. Cellular Field to claim the rubber game of the three-game set. The Royals hadn't taken a series at The Cell since Sept. 19-21, 2003, when they also won two of three.

"We'll take that," manager Trey Hillman said. "Hopefully, that's a good sign for us and we can carry it into the Detroit series."

Jose Guillen, pinch-hitting for Alex Gordon, was plunked in the hand by pitcher Octavio Dotel in the eventful eighth. Guillen, who'd been out with a sore back, also stole second base. With two out, Matt Thornton relieved Dotel and walked Ross Gload. German followed with a double into the left-field corner.

A reserve player, German was the starting left fielder and, when Guillen came into the game, he switched to third base.

"I always have to be ready," German said. "It's my job. It's a good win for us."

In the White Sox half of the eighth frame, Royals reliever Ron Mahay gave up a one-out double to A.J. Pierzynski and a walk. Brian Anderson singled to left field, but Guillen threw out Pierzynski at the plate and Mahay fanned Jim Thome.

Yep, that poor ol' sore-backed Guillen.

"Jose came up big and came up throwing to [catcher Miguel Olivo]," Mahay said. "He got him out and saved the game for us."

On a sunny, 79-degree afternoon, the first inning alone lasted a half hour, with the Royals emerging on top, 4-2.

The first four batters connected against White Sox left-hander John Danks and all four crossed the plate. Mark Teahen singled, Mike Aviles doubled and David DeJesus dropped a two-run double into left field. Billy Butler singled and, between two outs, Gordon walked. Both of them scored on Gload's line-drive single to center.

If nothing else, the crowd got a good, long look at the White Sox's 1982-86 era uniforms, worn on a day the club unveiled a sculpture of former star and current first-base coach Harold Baines.

There was historical significance, too, for Royals starter Brian Bannister. His father, Floyd, pitched for the Sox wearing those red- and dark-blue-trimmed uniforms.

Bannister's first inning for the Royals was no picnic, either. He got two outs, but then gave up two runs.

The Royals bumped their lead to 5-2 in the second as German doubled and got around on Aviles' single and a ground out.

But, with one swing by Joe Crede in the third inning, the White Sox knotted the game at 5. Bannister got two strikeouts before Paul Konerko and Nick Swisher each singled, and Crede cracked a full-count pitch into the left-field seats, his 17th homer.

"That shouldn't happen," Hillman said, referring to Bannister. "He's too good to go out there with two outs and give that up."

When Bannister closed out that third inning, he'd thrown the last of his 77 pitches. Horacio Ramirez was brought in to protect a 6-5 lead. Aviles' third hit, a single, scored Gload with the tie-breaking run in the fourth.

Within a few minutes, ex-Royals Jermaine Dye and D.J. Carrasco were involved in related events. Dye was drilled in the right knee by a Ramirez pitch and had to leave the game in the fourth. Carrasco, just recalled by the White Sox to replace the injured Jose Contreras, replaced Danks and his first pitch backed Butler off the plate. Sensing retaliation was in the air, plate umpire Mike Reilly issued a cease-and-desist warning to both benches.

X-rays of Dye's knee were negative and he was listed as day-to-day with a bruise.

The 32,269 fans gave Thome a rousing standing ovation in the seventh when, against reliever Ramon Ramirez, he lashed a double into the right-field corner for his 2,000th career hit. He's the 252nd player to reach that plateau, following the Royals' Mark Grudzielanek, who got there on July 12.

The historic hit paid off when Swisher followed it with a home run into the right-field seats for a 7-6 White Sox lead.

Oddly enough, Ramirez got the victory after giving up the two-run blast. It was the first home run he'd allowed this season.

"Too many things happened in this game," Ramirez said, smiling at the irony. "This is my first home run and I win the game."

Closer Joakim Soria, in his first appearance since the All-Star Game, pitched a perfect ninth inning and struck out the last two batters -- the dangerous Swisher and Crede.

It was his 26th save in 28 chances.

The comeback victory gave Soria a big smile, too.

"Sometimes we have to do more," he said. "Right now everything is going good."