CHICAGO -- David Bush made the most of his seven weeks in the minors, adjusting his delivery and gaining control of his fastball.
He allowed three runs and seven hits with two walks in five innings on a night he said he was, "OK. At times, very good."
Gregg Zaun hit a three-run double during a four-run first and Toronto's bullpen stifled rallies in the seventh and eighth innings, when the White Sox stranded two runners.
The win put the Blue Jays four games over .500 for the first time since May 31 and gave them a chance to complete a three-game sweep of the team with the best record in the majors.
Carl Everett hit a solo home run in the first for the White Sox, and Paul Konerko added a two-run shot in the fifth. Tadahito Iguchi singled, doubled and scored a run, and A.J. Pierzynski had two hits.
However, the White Sox left nine men on base and were 0-for-11 with runners in scoring position.
"We lost this game with no fundamentals," Everett said. "If we all collectively get the fundamentals down, we win this ballgame."
Bush (2-5) walked one and struck out one, improving to 2-0 in three starts since being recalled from Triple-A Syracuse. Three relievers combined to pitch four scoreless innings.
"Those guys were fabulous," Zaun said.
After holding Kansas City to three runs in seven innings in winning his first start back and allowing just a run in 8 1/3 innings against the Los Angeles Angels, Bush struggled at times. But he also made good pitches in tight spots -- pitches he might not have made before being sent to Triple-A.
His delivery is different now. He doesn't fall off as much, which allows him to control his fastball. Zaun mentioned a new cutter, too.
"My mechanics were a little disciplined at times," Bush said. "Both the home runs were on fastballs that tailed back toward the middle."
He left after just 78 pitches.
"It was a battle for him out there," manager John Gibbons said.
After Pierzynski led off the eighth with a single, Aaron Rowand reached on an infield single with one out. Joe Crede fouled out, and Miguel Batista struck out pinch-hitter Geoff Blum. Batista then worked the ninth for his 18th save in 21 opportunities.
"It wasn't because of a lack of effort," Rowand said. "Guys were trying to get the job done today, but it just didn't happen for us."
Early control problems doomed White Sox starter Orlando Hernandez (8-4), who allowed four runs and five hits in seven innings in his fourth start since returning from the disabled list due to a sore right shoulder.
His control problems in the first led to four Blue Jays runs. Hernandez walked Reed Johnson with one out, and then hit Shea Hillenbrand with a pitch one out later and walked Corey Koskie to load the bases for Zaun, who doubled to the warning track in right.
Eric Hinske drove in Zaun with a single that made it 4-0, but got caught between first and second and was tagged out.
Konerko's 25th homer cut it to 4-3. It was his second in two games and 188th with the White Sox, putting him in sole possession of fourth place on the club's career list ahead of former teammate Magglio Ordonez.
"It was a nailbiter," Gibbons said. "(Hernandez) settled in with that breaking ball, and we couldn't do much with it. ... Dave wasn't as sharp as he'd been his last couple outings, but (the ball) hung up."
- Blue Jays LHP Gustavo Chacin was named AL rookie of the month for the second time this season after going 5-1 with a 2.99 ERA in July.
- Hillenbrand was hit by a pitch for the 20th time this season, matching the franchise set by Johnson in 2003.
- White Sox leadoff batter Scott Podsednik is 2-for-24 after going 0-for-5.