It gave Braves starter Tim Hudson a three-run lead and wound up providing the difference in a 6-4 victory in front of 25,613 at U.S. Cellular Field.
The homer also answered any question about the All-Star break possibly cooling McCann off with one sweet swing of the bat -- after hitting .410 with four home runs and 15 RBIs in 16 games before the break.
"I've been feeling good for a while now and I got to swing a little bit over the All-Star break at the game, which was nice," said McCann, who went 1-for-4 and continued to help the Braves get past a rash of recent injuries that sidelined three regulars. "I think it takes every player in baseball four or five innings to get back into the swing of things when you take four or five days off. It was nice to get a win the first game back."
Coupled with the Nationals' loss to the Dodgers, Atlanta's win put the club seven games up on Washington in the National League East.
Hudson (7-7) picked up the win by going 7 1/3 innings and allowing four runs, while Andrelton Simmons hit his ninth homer of the season off Danks (2-7) to get the scoring started in the third -- a two-run shot down the left-field line.
Hudson picked up steam in the fifth, after a great play by Simmons at short turned into an inning-ended double play that stranded a runner on third with the score still tied at 2. McCann, who hadn't gotten a hit in five career at-bats against Danks before his homer, changed the game the next inning.
"It's pretty evident that his shoulder was bothering him and holding him back from a performance standpoint over the last couple years," Hudson said of McCann, who had arthroscopic shoulder surgery last October to repair a tear in his labrum. "It's nice to see him finally get back healthy and being the kind of hitter we always knew he was."
Chicago knotted it at 2 in the bottom of the third on a two-run double by Alex Rios, but that was all the White Sox could plate against the veteran right-hander until the eighth, when Hudson gave up a pair of runs. Craig Kimbrel closed it out in the ninth for his 27th save in 30 chances.
Despite allowing seven hits and two runs through his first six innings, Hudson was economical with his pitches. After retiring the side in the sixth, he'd thrown just 67 pitches with 43 counting as strikes. Danks had thrown 92 to that point.
Hudson got several great defensive plays behind him and got the White Sox to hit into a pair of double plays -- including the one in the fifth. After Alexei Ramirez's single to center moved Alejandro De Aza to third with one out, Hudson got the ground ball he was looking for from Rios, hit to Simmons at short to start the double play. Simmons handled a tough short hop on the play, but Rios didn't run hard to first -- drawing the ire of White Sox manager Robin Ventura, who pulled him from the game.
"We just expect more than that," Ventura said. "It was simple, nothing more than that. There [are] just expectations and we are not starting the second half off that way. It was simple. He will be back in. Tonight, that's what happens when you don't run."
After not winning a game in June, Hudson is 3-0 in July after collecting wins in three straight starts. He also improved his numbers against the White Sox. Coming in, Hudson was 3-3 in eight career starts against Chicago with a 5.19 ERA. His last win in the Windy City had come in 2002 when he was with the A's.
" It's been awhile since I've gotten a win here ... about 15 years?" Hudson joked. "I haven't fared too well here over the years. I don't think I have a lot of games pitched here, but when I have pitched here, it hasn't been too pretty at times. It's nice to finally get in the right column. It was still close. It was never easy, but a win's a win."
The Braves again started without Jason Heyward (hamstring strain) and Freddie Freeman (jammed thumb), but Freeman entered as a defensive replacement in the eighth and is expected to start on Saturday. Heyward said before the game that he's close to rejoining the lineup as well.
Without those two for most of the game, the Braves were down three regulars to start the post-All Star portion of the schedule because center fielder B.J. Upton is on the 15-day disabled list with a strained right adductor muscle.
Joey Terdoslavich started for Freeman at first, while Jose Costanza played left in Heyward's spot. Costanza didn't get a hit, but Terdoslavich went 1-for-3 and rapped out a leadoff single in the sixth that led to McCann's homer.
Terdoslavich also made a great play to save a run and keep it 2-2 in the White Sox's two-run third. He dived to stop Adam Dunn's sharp grounder down the line with Rios on second, then got up to outrace Dunn to the bag for the final out.
Freeman entered as a defensive replacement in the eighth, when Chicago scored two runs -- both charged to Hudson -- to make it interesting. Freeman also collided with the 6-foot-6, 285-pound Dunn on a ground ball hit to shallow right field into the defensive shift. Freeman emerged unscathed, but it caused some nervous moments in the dugout for Braves manager Fredi Gonzalez, who was able to joke about it afterward.
"Sure enough, you put him in the game and second play of the game, you've got Dunn and him with a collision at first base," Gonzalez said. "Everybody walked off, nobody got hurt there. It was just a little guy that landed on him ... I don't know what the big deal was."