McCann hit the second pitch from Toronto reliever Thad Weber (0-1) over the wall in right-center for his sixth home run of the season.
It was the fourth homer of the game for the Braves, who had a second-inning solo shot from Jordan Schafer and a home run by Evan Gattis, who has 12 on the season, leading off the sixth. McCann immediately followed Gattis with his first homer of the game.
Cory Gearin (2-1) pitched the ninth for the win and Craig Kimbrel collected his 16th save in the 10th.
A wild start left the score tied 4-4 after Schafer's home run but the pitching settled down until Jose Bautista connected for his 12th home run of the year that put Toronto up 5-4 in the fourth.
Gattis and McCann returned the lead to Atlanta but Bautista scored on J.P. Arencibia's double in the seventh.
The Braves scored three times in the first with Freddie Freeman knocking in two runs and scoring the other. But the Blue Jays came back with four runs in the bottom of the inning. Bautista scored the first run and Mark DeRosa had a two-run double and scored the fourth.