Teheran (7-4) was victimized by third baseman Chris Johnson's fielding error in the second inning, which was followed by a three-run homer by Rob Brantly. But the right-hander allowed only one run thereafter, yielding seven hits en route to the win.
Justin Upton supplied a solo shot, two RBI and three runs scored for the Braves.
Atlanta was trailing 4-3 in the fifth when Brian McCann's RBI tied the contest, and took the lead in the next frame when B.J. Upton singled, went to second on an out and scored on Teheran's infield hit and an error by Marlins pitcher Henderson Alvarez.
Jordan Walden logged the final two outs in the eighth and Craig Kimbel followed with his 24th save as National League East-leading Atlanta clinched their three-game series.
Alvarez (0-1) was touched for five runs (four earned) on eight hits over six full innings for Miami.