Teheran showed he can beat Jose Fernandez, the Marlins' young star who ranks third in the majors with his 2.33 ERA.
Freddie Freeman hit a two-run homer in the first inning, Teheran outpitched Fernandez in a matchup of young right-handers, and the Atlanta Braves beat Miami 2-1 Friday night for their fifth straight win.
"I've got an idea these kids are going to match up a lot in the future," said Braves manager Fredi Gonzalez.
Fernandez, 21, took his first loss since July 7 but allowed only one hit after Freeman's homer. Fernandez (10-6) gave up three hits in six innings for the Marlins, who have lost five straight.
Teheran, 22, yielded one run and four hits in 6 1-3 innings. A key for Teheran (11-7) was overcoming a long third inning, when the Marlins scored their only run.
"I just had one bad inning, and I was able to get out of that inning," Teheran said.
Fernandez endured a similarly taxing fourth inning before Brian McCann finally struck out in a 14-pitch at-bat and the Braves left the bases loaded.
"I was really surprised that both kids that young in those innings, they didn't rattle," Gonzalez said.
The long at-bat helped limit Fernandez to only six innings.
"McCann, that was a great at-bat," said Marlins manager Mike Redmond. "Jose did a great job striking him out in that situation. But it cost him a lot of pitches. That's what good teams do; they find a way to grind guys out.
"I thought he gave us everything he had tonight."
Each starter had eight strikeouts.
Before facing Freeman in the first, Fernandez had allowed only two homers in his last 15 starts since June 1 - and none in his first five outings this month. Freeman's homer off the top of the wall in center field drove in Elliot Johnson, who doubled to right.
The other hit allowed by Fernandez was Freeman's double in the fourth.
After the double, Fernandez smiled and shook his head as he looked at Freeman standing on second base.
"I told Freeman 'How can I get you out?' when he got to second base on that double," Fernandez said. "And then he starts laughing."
With closer Craig Kimbrel unavailable after pitching in three straight games, Anthony Varvaro got six outs, including a perfect ninth inning, for his first career save.
Fernandez led off the third by sliding in head-first for a triple, the first of his career. He scored on Christian Yelich's single. The slide gave Redmond a scare only a few feet away in Miami's dugout along the third-base line.
"You want him to play hard, but at the same time you want him to play smart," Redmond said. "I wouldn't have been disappointed if he'd stopped at second. And I definitely wouldn't have been disappointed if he'd slid feet-first instead of head-first. I hope we don't ever see that again. But I love the energy.
"He brings a spark to our team when we need him. He's a special kid."
Braves shortstop Andrelton Simmons made two strong defensive plays in the sixth. He adjusted to field Justin Ruggiano's grounder after the ball bounced off third baseman Chris Johnson's glove and then made a strong throw to first for the out. Simmons dove to his right to snare Placido Polanco's line drive for the second out.
"If anybody in the major leagues other than Simmons is playing shortstop, we probably lose that game," Gonzalez said.
Giancarlo Stanton led off the eighth with a single. Ruggiano then hit a fly ball to right field and Stanton was thrown out by Jordan Schafer while trying to advance to second.