Right-hander Chien-Ming Wang (1-0) won in his season debut. He gave up one run in three innings after taking over for Ross Detwiler in the fifth.
The Nationals moved two games ahead of Atlanta in the NL East.
Ian Desmond had a two-run single in the Nationals’ first inning. The Braves cut the lead to 4-3 before Zimmerman’s bases-loaded double off Tim Hudson in the seventh.
Jason Heyward homered in the eighth, Martin Prado had two doubles and a triple and Matt Diaz drove in three runs with two hits for the Braves. Atlanta has lost five in a row, its longest streak of the season.
Tyler Clippard pitched a perfect ninth with two strikeouts for his second save.
Wang entered the game after Prado doubled and Detwiler walked Dan Uggla with one out. Wang gave up a two-run double to Diaz, who was thrown out going for a triple.
Wang allowed three hits and one run, on Heyward’s homer, in three innings.
A left hamstring injury in spring training kept Wang out this season before he came off the disabled list Tuesday.
The Nationals took a 4-0 lead off Hudson (3-2) in the first. Desmond’s bouncing single up the middle drove in Bryce Harper, who singled, and Zimmerman, who doubled. Hudson hit Danny Espinosa with a pitch before giving up Ankiel’s two-run triple to left-center.
Hudson gave up seven earned runs on eight hits and two walks in 6⅔ innings. The four runs he allowed in the first inning topped the three he gave up in his previous three starts.