Odalis Perez (6-10) allowed three runs - two earned - and seven hits in 6 1-3 innings to win for the first time in four starts. The left-hander walked two and struck out three.
Joel Hanrahan, the sixth Washington pitcher, got the final two outs for his seventh save.
Cristian Guzman, who became the second National to hit for the cycle in Thursday night's victory over the Los Angeles Dodgers, had two hits and is on an 11-for-18 tear.
Greg Norton homered for Atlanta, which has dropped 14 of 18.
After Perez wiggled out of a bases loaded, one-out jam in the first, Zimmerman's RBI single put the Nationals up 1-0. Following Guzman's double, Zimmerman blooped a run-scoring hit to right.
In the second, Emilio Bonifacio's one-out triple scored Elijah Dukes, who had slapped a leadoff double off the glove of third baseman Chipper Jones. Guzman then singled for a 3-0 lead.
Washington chased Braves starter Jorge Campillo in a two-run fourth. Bonifacio's single and walks to Willie Harris and Zimmerman loaded the bases with two outs. Milledge poked a two-run single to right, and Buddy Carlyle replaced Campillo.
Campillo (7-7) went 3 1-3 innings, allowing five runs and eight hits. He walked three and struck out three.
Atlanta cut the lead to 5-3 in the fifth. Omar Infante led off with a double and Norton hit a two-run, pinch-hit homer to center. Josh Anderson reached on an infield single and went to second on second baseman Bonifacio's throwing error before Martin Prado's RBI double.
Zimmerman's sacrifice fly and Ronnie Belliard's run-scoring single extended the lead to 7-3 in the sixth.