McCann and rookie Evan Gattis hit back-to-back homers off Ramon Ortiz in the sixth, giving the Braves a 6-5 lead. The Blue Jays tied it on J.P. Arencibia's RBI double in the seventh.
McCann connected for a leadoff drive in the 10th against Thad Weber (0-1) for his sixth home run. It was McCann's first multihomer game of the season and the ninth of his career.
Cory Gearrin (2-1) pitched one inning for the win. Craig Kimbrel celebrated his 25th birthday by finishing for his 16th save in 19 chances.
Jordan Schafer also homered for the Braves.
Blue Jays starter Brandon Morrow left after two innings with soreness in his forearm. He did not pitch between May 5 and May 18 because of neck and back soreness and of his 47 pitches against the Braves, only three were above 90 mph.
The Braves scored three times in the first, taking advantage of some sloppy defensive play by the Blue Jays. Freddie Freeman opened the scoring with an RBI single and a second run scored on Bautista's throwing error from right field. One out later, Freeman scored on a throwing error by first baseman Edwin Encarnacion.
Toronto answered with four in the bottom half against Braves starter Paul Maholm. Encarnacion hit an RBI double, Mark DeRosa's double scored two runs and Colby Rasmus singled home a run.
Atlanta tied it again in the second on a two-out homer by Schafer.
Bautista made it 5-4 in the fourth by hitting a 62 mph slow curve from Maholm over the left-field bullpen for his 12th home run.
Maholm allowed five runs and a season-high 10 hits in six innings.
Gattis led off the sixth with his 12th homer and second in two days, tying it 5-5. McCann followed with a drive to right to put the Braves ahead.
Toronto tied it again against Anthony Varvaro in the seventh. Bautista led off with a double and scored on a one-out double by Arencibia. Luis Avilan came on after DeRosa walked, and Arencibia was doubled off second on Rasmus' flare to shortstop, ending the threat.
Atlanta used a walk, a single and a wild pitch to put runners at second and third for Gattis in the ninth, but he struck out against Steve Delabar.