He surrendered two to Josh Donaldson and another to Russell Martin over his five innings. Teheran hadn't allowed a homer his previous two starts this season.
"He's better than that," Braves manager Fredi Gonzalez said.
The Blue Jays hit five homers, while the Braves smacked a pair of their own in their one-run victory.
Teheran had trouble locating his fastball, which was the culprit on three of the four homers.
"When I got [a] lead, I just wanted to keep my team [in it] to hold the other team, but I wasn't able to," he said.
He allowed five earned runs for first time since Aug. 11 of last year against the Dodgers.
Teheran had cruised through his first two starts, earning wins against the Marlins and the Mets. He'd allowed a combined two earned runs in those contests, but didn't have his best stuff against Toronto.
Gonzalez didn't appeared too concerned, though.
"Just missed his spot with his fastball," Atlanta's skipper said.
Jamie Ross is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.