Strasburg lasted just two innings before leaving the shortest outing of his career. The Nationals did not give an update on Strasburg during the game.
The victory snapped a two-game skid for Washington, which trimmed its second-place deficit in the NL East to 4½ games behind the Braves.
Atlanta has dropped two of three and four of six.
Strasburg left with a 2-1 lead. He allowed two hits and one run — a homer by Freddie Freeman — with no walks and two strikeouts.
Stammen (3-1) shut down the Braves by striking out three and allowing no baserunners through the sixth.
In the seventh, Tyler Clippard escaped a bases-loaded jam that he created by allowing an RBI single to Freeman that cut the lead to 3-2 and by hitting the next two batters he faced.
Clippard settled down, though, and struck out Dan Uggla and Chris Johnson.
Drew Storen pitched a scoreless eighth for the Nationals, and closer Rafael Soriano converted his 15th save in 18 chances by retiring Freeman on a flyout, striking out B.J. Upton and getting Brian McCann to ground out in the ninth.
Stammen retired all 12 batters he faced. He was replaced by a pinch-hitter in the top of the seventh.
The Nationals took a 3-1 lead in the sixth when Span tripled again and scored on another sacrifice fly by Bernadina.
Teheran’s night ended when Anthony Varvaro replaced him with a runner on second. Teheran allowed seven hits, three runs, one walk and a career-high nine strikeouts.