Hudson (13-4) stretched his unbeaten streak to 10 starts, taming the Giants on five hits while issuing just one walk and striking out three.
The right-hander needed only 82 pitches, throwing 60 of them for strikes as the National League wild card-leading Braves split their four-game series with the NL West-leading Giants.
Giants starter Tim Lincecum (7-14) lost for the third time in four outings, yielding three runs on five hits over five frames.
Brandon Crawford knocked in the only run for San Francisco, which maintained a two-game lead over second-place Los Angeles atop the NL West.
Dennis Rodman pledges to end trips to North Korea
Senate Democrats to pull all-nighter on climate change