Strasburg (1-2) didn't give up an earned run in his six innings of work, but Atlanta got all the offense it needed when Washington third baseman Ryan Zimmerman threw wildly to first base after fielding Justin Upton's grounder and Gattis followed with his fourth home run in eight big league games.

"In close games like today, well-pitched games, it's the little things you have to do that win the game," Hudson said. "They made one mistake that cost them the game, and we were pretty solid all day."

Zimmerman's error was Washington's 10th in 11 games.

"It was just a bad throw," Zimmerman said. "Unfortunately, today they took advantage of it. Stephen threw the ball so well today, and when you do that and that happens in a game like that, you feel bad. But that's part of the game."

Hudson (2-0) allowed one run, walked none and struck out three in improving his lifetime record against Washington to 15-5. Not only did the right-hander outpitch Strasburg, but he also got two singles off Washington's hard-throwing ace.

"I bet you he had more fun getting those two hits than pitching seven innings," Braves manager Fredi Gonzalez said.

Hudson said. "I'm not supposed to hit, so it was a little exciting getting those two knocks there, especially against a guy throwing that hard."

Hudson permitted only one runner past second base — Danny Espinoza, who hit a solo homer in the fifth.

Strasburg struck out seven, walked one and hit a batter. He insisted he did not lose his focus after Zimmerman's error gave the Braves a chance to extend the third inning.

"The guy's up there hacking," Strasburg said of Gattis. "I throw one up at his neck and he tomahawks it out."

After Eric O'Flaherty worked a perfect eighth for the Braves, Jason Heyward hit a run-scoring grounder in the ninth for a 3-1 cushion. Craig Kimbrel then got three straight outs for his sixth save in six tries.

The victory kept the first-place Braves unbeaten on the road (5-0) and increased their lead over Washington to three games. Atlanta (9-1) is off to its best start since 1994 (13-1).

"It was a big day for us," Hudson said. "We knew coming in it wasn't going to easy."

The Nationals are stuck in their first skid of the season. Washington lost to Atlanta on Friday night after blowing a four-run lead.

To worsen matters, catcher Wilson Ramos pulled his left hamstring running out a grounder and could be lost for a while.

"It's a pretty deep pull," manager Davey Johnson said. "We'll see how he comes out of it tomorrow, but we'll probably have to get somebody in here."

In the first inning, leadoff Denard Span singled and advanced when Hudson threw wildly to first on a pickoff attempt. But Span was doubled off second after breaking on a sinking liner by Jayson Werth, which was ultimately caught by center fielder B.J. Upton.

"That changed the momentum of the game right there," Hudson said.

Atlanta missed a chance to break on top in the second inning when left fielder Bryce Harper threw out Dan Uggla, who was trying to score from second on a two-out single by Hudson.

After the Braves went up 2-0, Espinoza halved Atlanta's lead with his first homer of the season. Prior to that, Hudson had retired 10 of 11 batters.

NOTES: Johnson said reliever Henry Rodriguez is still receiving treatment on his right elbow. Rodriguez, who pitched a scoreless eighth inning Saturday, underwent season-ending surgery last August to remove bone chips from his elbow. ... Atlanta is 7-0 when scoring first. ... The game drew a crowd of 41,992, the fifth sellout of a regular-season game in Nationals history. ... The Braves will seek to complete a three-game sweep Sunday. Paul Maholm (2-0, 0.00 ERA) with start for Atlanta, and Gio Gonzalez (1-0, 0.82) gets the call for Washington. ... Heyward went 0 for 4 and is batting .086, but in addition to his ninth-inning RBI, the right fielder made a fine diving catch in the seventh inning to rob Adam LaRoche of an extra-base hit. ... Harper went 0 for 3, only the second time in 11 games he did not reach base.