Braves starter Tim Hudson (7-7) earned his third consecutive win after a 10-start winless streak. He pitched 7 1-3 innings, giving up four runs on eight hits while striking out four and walking two. Craig Kimbrel pitched the ninth for his 27th save in 29 outings.
White Sox starter John Danks (2-7) took his seventh loss in his past 10 starts. Danks pitched seven innings, allowing all five Atlanta runs on seven hits, including homers by McCann and Andrelton Simmons. He struck out four and walked none. Danks also uncorked a wild pitch before to McCann’s homer.
Atlanta, which ended the first half of the season losing two of its last three, snapped a five-game interleague losing streak to the White Sox.
It was Chicago’s eighth loss in its past 11 games, 22 of 31 and 32 of 45. The White Sox are now 19 games under .500 for the first time since Sept. 27, 2007, when they were 70-89.
Atlanta took a 2-0 lead in the third inning. Chris Johnson, who had three hits in the game, led off with a single and scored on Simmons’ ninth home run, to left field.
Chicago tied the game in the bottom of the third. Former Georgia standout Gordon Beckham led off with a single, but was forced at second on a fielder’s choice to Josh Phegley. Alexei Ramirez singled, his first of three hits, advancing Phegley to second, and then Alex Rios followed with a two-run double deep to right-center.
The White Sox had a good chance to take the lead in the fifth. Alejandro De Aza and Ramirez had back-to-back one-out singles, putting runners at first and third. Rios’ grounder to short was bobbled by Simmons, but he recovered in time to turn an inning-ending double play.
The Braves broke the game open with a three-run sixth. Joey Terdoslavich and Justin Upton both had singles and then advanced to second and third on a wild pitch by Danks. McCann then hit a two-out, 3-2 pitch for his 13th home run, giving the Braves a 5-2 lead.
Chicago scored two runs in the eighth to get within 5-4. De Aza led off with walk and stole second and scored on Ramirez’s RBI double to left. Jeff Keppinger’s bloop single to right scored Ramirez.
The Braves added an insurance run in the ninth when Upton singled off White Sox reliever Matt Lindstrom, went to second on an infield out and scored on Johnson’s single to right.
Before to the game, White Sox RHP Jake Peavy (6-4, 4.30) was activated off the disabled list. He will start Saturday against Braves lefty Paul Maholm (9-8, 3.98).
Peavy had been sidelined since June 5 with a rib he fractured June 4 at Seattle.
NOTES: Braves RF Jason Heyward remains out with a strained right hamstring he injured July 11 against the Reds. “He’s making a lot of progress,” manager Fredi Gonzalez said. As for 1B Freddie Freeman, out with a jammed thumb since July 13, “Hopefully he’s good tomorrow,” Gonzalez said. . Braves RHP Brandon Beachy made his third rehab start Friday at Triple-A Gwinnett (Ga.). He’s recovering from Tommy John surgery. . White Sox RHP Jesse Crain threw on the sideline Friday and hopes to return from a strained right shoulder in about a week. He’s been on the DL since July 3. . White Sox OF Dewayne Wise was returned to Triple-A Charlotte due to a strained right hamstring. The White Sox also signed INF Travis Ishikawa and assigned him to Charlotte. . Attendance was 25,613.