CHICAGO -- In 2005, Jose Contreras was the ace of a staff that dominated baseball. Two years later, he is feeling helpless.
Rob Mackowiak hit a three-run homer and Josh Fields added a solo shot for the White Sox, who are 13 ½ games behind the Cleveland Indians in the AL Central and have lost 14 of their last 19 home games.
Trailing 2-0 in the third inning, the Orioles came back against Contreras (5-10) with four runs. They had three infield hits in the inning and sent nine batters to the plate.
Contreras lost his third straight decision and his ERA rose to 5.19. He gave up six runs and eight hits, struck out five and walked two.
"Right now, I'm just struggling and I just can't help the team," Contreras said through an interpreter. "I never remember being like this. I've never been under .500 in my life, so I can't do anything about it. I just need to keep working and God bless I'm healthy."
Contreras, who rarely shows emotion on the mound, tossed his glove into the stands after the third inning.
"I don't blame him. You want to pitch good, you don't want to be embarrassed out there," White Sox manager Ozzie Guillen said. "Everybody is frustrated. This kid has had a lot of success with us and he felt like he let the team down."
Orioles starter Garrett Olson was given a 6-2 lead in the fifth but couldn't stick around long enough to earn the win in his major league debut. The left-hander gave up a leadoff single to Tadahito Iguchi, then struck out Jim Thome. Orioles interim manager Dave Trembley brought in Rob Bell, who retired Paul Konerko and Jermaine Dye.
Bell (2-1) pitched 1 2/3 innings for the win. He gave up Fields' home run in the sixth.
Corey Patterson led off the third with a bunt and stole second. Brian Roberts followed with another bunt. Contreras fielded the ball and overthrew Konerko covering at first. Patterson scored on Contreras' errant throw and Roberts advanced to second.
Nick Markakis drove in Roberts with a single and moved to third on Millar's double. Markakis scored on Gibbons' sacrifice fly and Millar scored on Jay Payton's infield single, giving the Orioles a 4-2 lead.
"We're making them make mistakes. We're running a lot more than we have in the past," Gibbons said. "It just seemed like they got a little flustered there early and things happen when you put runners in motion."
Markakis led off the fifth with a walk, and one out later, Gibbons followed with a two-run homer off Contreras.
"He was not throwing strikes. That's his problem," Guillen said. "Today wasn't his best day. The inning they scored four runs, that is what got him. He's all about strikes. When (Contreras) throws strikes, he gets ahead in the count."
Olson was called up from Triple-A Norfolk before the game to replace Steve Trachsel, who is out with a strained gluteus. Olson, the 48th pick in the 2005 draft, pitched 4 1/3 innings and allowed two runs and five hits. He struck out four and walked five.
"Garrett Olson is just happy to be here," Trembley said. "I told him after the first inning, 'Just settle down a little bit. It's the same game and we have a good team playing behind you."'
Olson gave up back-to-back walks to Fields and Luis Terrero in the second inning. Fields scored on Toby Hall's sacrifice fly and Terrero scored on Andy Gonzalez's single.
With two outs in the sixth, Millar gave the Orioles some insurance with a two-run double off White Sox reliever David Aardsma, making it 8-2 and setting off boos from the 33,640 fans in attendance.
After the game, the White Sox optioned Aardsma to Triple-A Charlotte. The club will make a corresponding move on Thursday.
The fans were forced to sit through a 3-hour, 23-minute game in order to watch the postgame firework display.
Freddie Bynum tripled in the seventh off Aardsma and later scored when Fields couldn't handle Patterson's routine bouncer at third. It was Chicago's third error of the game.
To make room on the roster for Olson, the Orioles designated reliever Scott Williamson for assignment. ... C A.J. Pierzynski had the night off. ... Baltimore committed three errors. ... Roberts was 3-for-5 with two runs.