The Orioles rebounded from losses in the first two games between division leaders, erasing a three-run deficit before breaking a 5-all tie on Miguel Tejada's RBI double in a four-run seventh inning.
"That was a big, big win," Tejada said.
Added winning pitcher Daniel Cabrera: "That was real important."
Brian Roberts was 3-for-5 with three doubles for Baltimore. He is 13-for-26 the past six games.
Chicago's Freddy Garcia (3-3) walked Melvin Mora to start the seventh and left after Tejada's double. Rafael Palmeiro greeted reliever Neal Cotts with a double that made it 7-5, before B.J. Surhoff drove in a run with a single and scored when Tadahito Iguchi overthrew first trying to complete a double play.
Garcia, who allowed 10 hits and seven earned runs, became the first White Sox starter to lose consecutive starts this season.
"When you walk people, that's going to happen," said Garcia, who walked three. "I should have been more aggressive."
Cabrera (3-2) allowed five runs and six hits with four walks in six innings, but he retired the final nine batters he faced. It helped that Chicago had three runners thrown out at the plate -- Paul Konerko in the first, Jermaine Dye in the third and Scott Podsednik in the fourth.
"That's the way we're gonna play the game," Chicago manager Ozzie Guillen said. "We're not changing anything. ... That's the way we're going to try to score. I don't have any problem with that."
B.J. Ryan pitched the ninth for his 10th save in 11 chances.
The Orioles took a 2-1 lead in the second when Roberts doubled down the right-field line to drive in Jeff Fiorentino from first base. A fan reached onto the field and grabbed the ball, and the umpires initially waved Fiorentino back to third. But after conferring, they allowed the run to stand.
The White Sox answered with three runs in the bottom half and extended their lead to 5-2 in the third on Joe Crede's RBI single. They've led in all 37 games, which extended their major-league record to start a season. It's the third-longest streak in major-league history.
The Orioles tied it at 5-5 in the fourth. Surhoff and Jay Gibbons hit back-to-back homers and Fiorentino singled -- his second hit of the game and fourth in as many major-league at-bats -- and scored the tying run when Roberts doubled to the left-field corner.
"We have a lot of good hitters," Tejada said. "We (had) to be more patient at the plate. That's what we did today."
- Podsednik matched his career high and a club record with four stolen bases. It was his second four-steal game of the season and the third of his career.
- After singling in his first four at-bats in the majors, Fiorentino struck out swinging to lead off the sixth. After replacing center fielder Larry Bigbie (sore hamstring), Fiorentino had two singles on Thursday and he singled in his first two at-bats Saturday. After the strikeout, he doubled, making him 5-for-7 since being called up from Class A on Wednesday. "He looked like the bat boy," Guillen said. "I thought he was Palmeiro's kid. This kid swings the bat like that, he'll stay in the big leagues."
- The attendance was 37,311, the White Sox's second-largest crowd of the season. They drew 38,141 to the season opener against Cleveland on April 4.