CHICAGO (AP) -- With his managerial career winding down, Buddy Bell finally witnessed a rare comeback victory for his Kansas City Royals.
"Usually we don't have enough firepower to come back. We battle every night and it's nice to finally get rewarded," said Bell, who saw his club fight back from a four-run deficit, its biggest of the season.
Ross Gload hit a go-ahead sacrifice fly in the seventh to break a 5-all tie and dump the White Sox into a last-place tie in the AL Central with the Royals. Gload added another sacrifice fly in the ninth.
Pena's solo shot in the fifth inning, his second of the year, started the rally. Two innings later, Contreras gave up an RBI double to Pena, who came all the way around to score when Scott Podsednik couldn't cleanly field a single by Joey Gathright.
White Sox reliever Ehren Wassermann (0-1) gave up an infield single to Mark Grudzielanek, and Mark Teahen greeted reliever Mike Myers with an RBI single to tie the score at 5. Gload followed with a sacrifice fly to left.
"It was frustrating that if I throw the seventh inning and I come out of it the team wins," Contreras said through a translator. "[The pitches] just stayed high in the zone and you're going to get hurt when you do that."
Pena gave the Royals an insurance run in the eighth with an RBI-double off reliever Mike MacDougal and later scored on a wild pitch to make it 8-5. Pena scored three times and finished a triple short of the cycle.
"I'll take the hits instead of the homers. I don't want to try to do too much," Pena said. "We're just going to try and keep battling [the White Sox] and get on top of them."
Brandon Duckworth (3-5) pitched two scoreless innings for the victory.
Contreras went 6 1/3 innings and gave up five runs, four earned, and six hits. He struck out three and walked one.
"He hit the wall in [the seventh] inning. He threw a couple of pitches down the middle of the plate and he got hit pretty good," White Sox manager Ozzie Guillen said. "We scored five runs in the first inning and all of a sudden we got shut down."
Royals starter Brian Bannister continued to struggle late in the season. It was the shortest outing of his career as he recorded two outs and allowed five runs and four hits.
After a personal four-game winning streak, Bannister will finish his season winless in his last four starts with a 12-9 record.
"It was nice to see Banny not take the loss. This kid has had a great rookie season. It was nice that his last start wasn't a loss," Bell said.
Pitching with a 1-0 lead in the first, Bannister gave up a two-run double to Konerko, who broke out of an 0-for-15 slump. With two outs, A.J. Pierzynski blooped an RBI double down the left field line and Podsednik drove in Pierzynski with a triple. Juan Uribe chased Bannister with an RBI infield single to give the White Sox a 5-1 lead.
Gathright led off the first inning with a double. One out later, Contreras fielded Teahen's ball and Gathright held at third base. But Contreras overthrew Konerko at first, allowing Gathright to score.
The White Sox decided to skip Mark Buehrle's last start of the season to take a look at rookie right-hander Lance Broadway. ... Teahen threw out Pierzynski at second for his 17th outfield assist. It tied Jermaine Dye's club record set in 1999.