CHICAGO -- The Chicago Cubs' offense had all but vanished, their fans were growing restless and their veteran manager remained perplexed by this collective hitting slump.
And then in two innings Thursday, the Cubs put together a rally against their crosstown rivals and emerged with a 6-5 victory over the White Sox that was one of their most dramatic wins of the season.
"Sometimes when you are struggling, nothing works. I've been struggling for a couple of weeks," said Alfonso Soriano, who singled home the winning run in the ninth after Derrek Lee and Geovany Soto hit back-to-back homers in a four-run eighth to tie the game.
"I needed a game like this today and the team needed a game like this today," Soriano said. "Everybody can relax and come back tomorrow with new energy."
The late comeback gave the Cubs a two-game split of this rain-shortened set at Wrigley Field. They are 34-34 against the White Sox in interleague play.
Pinch-hitter Reed Johnson started the ninth with a single, moved up on a sacrifice and scored on Soriano's two-out single to right-center off Matt Thornton (4-2). Soriano was 14 for 102 and 0 for 15 before singling in his final two at-bats.
"Truthfully, he's too talented to have a valley as big as he's been in. You can have some peaks and valleys, but he's been in a gorge," Cubs manager Lou Piniella said. "Look, for us to be a good offensive team, we need Soriano to hit. Let's be perfectly clear about that."
With the Cubs trailing 5-1, Lee hit a three-run homer in the eighth. Soto followed with a shot off Scott Linebrink to tie the score and send a large portion of the crowd of 40,467 into a frenzy. All four runs were unearned after an error by second baseman Chris Getz.
"I didn't make pitches. You've got to make pitches against guys like that -- Derrek Lee, Geovany Soto -- those guys can hurt you," Linebrink said. "And the last thing I want to do is go out there and put them in a situation where they can get back into the game."
Alexei Ramirez's two-run homer in the seventh off Carlos Zambrano gave the White Sox a 3-1 lead. They tacked on two more in the eighth off Carlos Marmol on an RBI double by Getz and a run-scoring single by Gordon Beckham.
But Linebrink couldn't hold the four-run lead. Getz made his second error of the game on pinch-hitter Micah Hoffpauir's leadoff grounder. After Soriano singled, Linebrink got Ryan Theriot to pop out and struck out Milton Bradley.
But Lee's drive to right-center just cleared the fence above the wall for his eighth homer and made it 5-4. Soto then hit a 1-1 pitch to left-center for his fourth homer as the Cubs' stagnant offense finally showed some life.
White Sox manager Ozzie Guillen said Linebrink wasn't sharp with his control.
"I think the reason they won is because Linebrink didn't throw the ball over the plate. When he threw the ball over the plate, it was a home run," Guillen said.
The Cubs had managed just 10 runs in their previous six games and Piniella has been pondering some major lineup changes that didn't come Thursday.
"We've been in an offensive funk, and to score some runs late off some really good pitchers is big for us," said Lee, who extended his hitting streak to 15 games. "To lose this game would have been tough."
Kevin Gregg (1-1) got the win with a scoreless ninth.
White Sox starter Gavin Floyd gave up just one run and four hits in seven innings, leaving with a 5-1 lead.
Zambrano, making his first start at Wrigley Field since a May 27 meltdown that led to a six-game suspension, gave up six hits and three runs in seven innings.
The White Sox took a 1-0 lead in the sixth when Brian Anderson foiled some Cubs strategy. After Jermaine Dye doubled, the Cubs elected to intentionally walk A.J. Pierzynski with two outs, but Anderson delivered an RBI single.
The Cubs came right back in the bottom half to tie it on Lee's RBI grounder.
Zambrano was making his first home start since his outburst during a game against the Pirates. After he was ejected for arguing with umpire Mark Carlson over a play at the plate, Zambrano gave Carlson the ejection sign, fired a ball into left field, slammed his glove into a dugout fence and took a bat to a dugout drink dispenser before heading to the clubhouse.
Zambrano kept his composure Thursday, showing just a glimpse of emotion when he struck out in the fifth by angrily exchanging the bat from one hand to the other.
Soto had his first career stolen base in the fourth. ... Cubs OF Kosuke Fukudome is in an 0-for-21 slide.