The Nationals were held scoreless until producing a pair of runs in the top of the ninth. Chris Snyder opened the inning with a homer off Lay Batista, who was positioned to escape further damage until Michael Taylor sent a two-out, game-tying single to left field.
Andrelton Simmons' infield single loaded the bases in Atlanta's two-run seventh, setting the stage for Cunningham to loft his game-winning single to shallow right-center.
After allowing each of Atlanta's first four batters to reach safely in the sixth, Nationals reliever Ross Ohlendorf exited the game with what appeared to be an injury to his right side. The Braves added their second run when Dan Uggla scored on Matt Lipka's double-play groundout.
Braves right-hander Julio Teheran struggled to command his fastball as he allowed four hits, issued a walk, uncorked a wild pitch and hit a batter during his three scoreless innings. He escaped after allowing leadoff singles in his final two innings -- with two on and one out in the third, he got Tyler Moore to ground into a double play.
Nationals starter Jordan Zimmermann notched four strikeouts and limited the Braves to two hits over three scoreless innings. Singles by Chris Johnson and Lipka accounted for the only hits surrendered by Zimmermann, who, like Teheran, has not allowed a run in the five innings over his first two Grapefruit League starts.
Up next: Tanner Roark will return to the mound when the Nationals host the Astros on Friday at 1:05 p.m. ET. Roarke pitched two scoreless innings while yielding two hits in his first outing. After not making Thursday's trip to play the Braves, Adam LaRoche, Ryan Zimmerman, Jayson Werth and Bryce Harper are expected to be in the lineup to face Houston starter Brett Oberholtzer.
Mark Bowman is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.