Tehran (4-2) gave up one hit with two walks and set a career high with 11 strikeouts in eight innings in the Braves' fifth straight win, including a sweep of the three-game series.
Pinch-hitter Brandon Inge broke up Teheran's no-hit bid with a single to left field with two outs in the eighth. Teheran received an ovation from Braves fans who also cheered after the inning ended on Starling Marte's pop-up.
David Carpenter pitched a perfect ninth to complete the combined one-hitter.
Evan Gattis and Gerald Laird hit back-to-back homers in the sixth.
Pittsburgh's Wandy Rodriguez (6-4) left the game with tightness in his left forearm after recording only one out in the first inning.
Rodriguez, a left-hander, pointed to his forearm when visited by manager Clint Hurdle and a trainer. After a brief discussion on the mound, Rodriguez was removed from the game.
Rodriguez gave up two hits and a run and hit Freddie Freeman with his 14th and final pitch.
The Pirates have lost three straight and five of six.
Bryan Morris replaced Rodriguez and gave up no runs on three walks in 3 2/3 innings.
Teheran, 22, was sharp. Only 28 of his 107 pitches were balls, and he set a career high in strikeouts for the second straight start after fanning nine in a 3-2 loss to Washington on Friday.
Teheran didn't allow a baserunner until Russell Martin walked with two outs in the fifth. Clint Barmes then popped out to end the inning.
Teheran hit Marte with a pitch with one out in the sixth but ended the inning by catching Marte with his pickoff throw to first base.
Gattis gave Atlanta a 2-0 lead by hitting an 0-2 pitch from Vin Mazzaro about halfway up the lower section of left-field seats for his 13th homer, easily the most for any rookie in the majors. Laird followed with his first homer, also to left field.
The Braves added a run off Jared Hughes in the seventh. Jason Heyward and Chris Johnson had singles, and Heyward scored from second base when Freeman hit a fielder's choice grounder to first base. Johnson was out on Garrett Jones' throw to second, but Hughes missed Clint Barmes' throw to first for an error.
Hughes loaded the bases by walking Gattis and hitting Laird with a pitch. Dan Uggla's fly ball to shallow center fell off the glove of a charging Andrew McCutchen, allowing Freeman to score for a 5-0 lead.
Kent Mercker threw the Braves' last no-hitter against the Dodgers on April 8, 1994. Mercker combined with Mark Wohlers and Alejandro Pena for a no-hitter against San Diego on Sept. 11, 1991. Before that, the Braves' last no-hitter was by Phil Niekro against San Diego in 1973.
No Braves pitcher has thrown a no-hitter at Turner Field.