CHICAGO (AP) -- Lou Piniella lost his patience after Milton Bradley lost his cool.
The Chicago Cubs still won, and they can thank Geovany Soto, of all people, for that.
At the center of controversy the previous day, Soto delivered the tie-breaking three-run homer to help the Cubs beat the White Sox 5-4 on Friday at U.S. Cellular Field.
"As soon as I come through those doors, nothing matters but the game," said Soto, who has struggled this season. "In here, it doesn't matter. Everything goes out the window when I step in here."
On a day when things seemed to be taking a positive turn, there was more controversy instead.
Bradley attacked the Gatorade machine in the dugout after he flied out in the top of the sixth led to an angry exchange in the tunnel with Piniella, who told him to get dressed and go home. Ryan Freel replaced him in right field in the bottom half.
"This has been a common occurrence and I've looked the other way a lot and I'm tired," said Piniella, who was planning to start Bradley on Saturday. "I'm not into discipline, I'm really not. I'm going to put his name in the lineup tomorrow and that's it."
Bradley's not the only Cubs player to go wild in the dugout this season.
Ace Carlos Zambrano tossed his glove and pummeled the dispenser after being ejected from a game against Pittsburgh last month. Two days earlier, Ryan Dempster attacked the machine in a fit of frustration.
The chaos in the dugout and the tunnel overshadowed a dramatic and much-needed win for the Cubs.
Fresh off the revelation that he tested positive for marijuana at the World Baseball Classic, Soto hit a three-run homer off Jose Contreras (2-7) in the seventh to give the Cubs a 5-2 lead.
Wells (2-3) won his second straight start, allowing two runs and five hits in seven innings, and the Cubs hung on even though Carlos Marmol nearly blew it in the eighth. Jim Thome, who hit his 554th homer earlier in the game, drove a two-run double off first baseman Derrek Lee's glove after Jermaine Dye's pop fly to left fell in to load the bases.
Marmol then intentionally walked Paul Konerko to load the bases again. Sean Marshall then came in and pinch hitter A.J. Pierzynski then grounded into an inning-ending 3-2-3 double play on the first pitch.
Kevin Gregg walked Josh Fields with two out in the ninth before striking out Scott Podsednik for his 12th save in 15 chances.
Jermaine Dye gave the White Sox a 1-0 lead in the first with his 17th homer. Jim Thome tied it at 2 in the fourth with a solo drive that broke an 0-for-13 slump after Fox -- who had three hits -- hit a two-run drive in the top half.
But on a day when the ball was carrying, Soto landed the biggest blow after Fox singled with one out and first baseman Paul Konerko mishandled Mike Fontenot's roller.
"I feel bad for making an error like that behind Jose because he was pitching so well," said Konerko, who went 118 games without an error. "I thought (Contreras) was having a really good day, he threw the ball really well today, battled and he had a cramp out there. You're sick in that respect but you're going to make errors. If I can make them all like that I'll be happy."
NOTES: Contreras came up clutching his lower back after striking out Kosuke Fukudome leading off the sixth but stayed in the game following a visit by manager Ozzie Guillen and trainer Herm Schneider.