KANSAS CITY, Mo. -- Kansas City manager Buddy Bell knew it had been a long time since the Royals back from a deficit entering the ninth inning.
"I knew it was over 100 games," Bell said. "We'd get close, but not over the hump."
The Royals rallied with three runs in the ninth to defeat the Chicago White Sox 10-9 Wednesday night, snapping a franchise-record 102-game losing streak in which they trailed after eight innings. The last time they won with a deficit entering the ninth was Aug. 31, 2004, against Detroit.
"It is nice to break that streak," said Mark Teahen, who scored the winning run. "I'm definitely enjoying it."
Angel Berroa's double drove in the tying run, and Jermaine Dye's fielding error allowed Teahen to score the winner. Chicago lost for just the fourth time in 17 games against Kansas City this season, and had its AL Central lead cut to five games over the Cleveland Indians -- the smallest lead for the White Sox since before play on June 16.
"The grass is a little wet," Dye said of his error. "I was trying to cut the ball off and give us a chance to hold the runners."
White Sox closer Dustin Hermanson (1-4) blew his fourth save in 38 chances.
"I made some mistakes and paid for it," he said.
"Obviously, every time we have a lead in the ninth inning I want to be in there," Hermanson said. "I think they are trying to help me, not overuse me. I think they're doing the right thing, trying to take care of me, trying to protect me."
White Sox starter Freddy Garcia gave up seven earned runs and nine hits in 5 1/3 innings.
"When you score nine runs, you should have a win," Guillen said. "We pitched poorly. Freddy pitched really, really poorly. We have to look ourselves in the mirror and pitch better."
Matt Stairs started the rally with a one-out single. Emil Brown and Teahen followed with consecutive singles to score pinch-runner Chip Ambres. Berroa then doubled to right to bring in Brown with the tying run, and Teahen scored when Dye had trouble picking up the ball.
"My job is to keep running until he (third base coach Luis Silverio) stops me," Teahen said. "I don't know what happened with the ball in right field."
Said Stairs: "Finally, we took advantage of the other's teams mistake instead of them taking advantage of our mistakes. That's probably our nicest win of the year. Hermanson has done especially well closing games. To sneak in there and take a game with some clutch hits is nice."
Chris Demaria (1-0) pitched a scoreless ninth to pick up his first career victory.
The Royals jumped out to a 3-0 lead in the first on Mike Sweeney's two-run homer and Teahen's RBI single.
The White Sox took the lead with a six-run third. Tadahito Iguchi hit a three-run homer, Dye had a sacrifice fly and Juan Uribe added a two-run shot. Uribe is hitting a major league-best .465 in September, with six home runs, 13 RBIs and 12 runs scored.
Kansas City closed the gap to 6-4 in the bottom of the inning. Terrence Long led off with a single, advanced to third on Stairs' single and scored on Freddy Garcia's wild pitch.
"I'm just really disappointed on how I pitched," Garcia said. "I should pitch better. It was a terrible start."
Stairs had a sacrifice fly in the fifth, and the Royals scored two more runs in the seventh. Berroa led off with a triple and scored when left fielder Podsednik had trouble picking it up. Andres Blanco tripled with one out and scored on Aaron Guiel's sacrifice fly.
Rookie left-hander J.P. Howell, who held Chicago to two hits and two runs over six innings in a victory last Thursday, allowed six runs on seven hits in just three innings.
- Sweeney has 35 doubles, the most by a Royals player since Carlos Beltran hit 44 in 2002. Sweeney hit his 20th home run, the sixth time in his career to reach that mark.
- Iguchi's 62 RBIs, 42 extra-base hits and 29 multi-hit games rank second among AL rookies. He leads AL rookies with 200 total bases.