Gallardo (6-2) walked four with six strikeouts and gave up no singles in eight innings. He allowed no baserunner past second base and threw 110 pitches. Villanueva completed the shutout with a perfect ninth inning.
The Braves' only hits off Gallardo were doubles in the third inning by Martin Prado and in the seventh by Brian McCann.
Gamel hit a two-run double in the fourth to drive in Prince Fielder and Mike Cameron. Gamel added a run-scoring single in the Brewers' two-run fifth.
Gallardo, who pitched eight scoreless innings but received no decision in the Brewers' 1-0 win over St. Louis in 10 innings on May 25, has allowed one earned run in his last three starts.
The Brewers began the night tied with St. Louis for first place in the NL Central.
Jair Jurrjens (5-3) suffered in first loss in seven starts, giving up nine hits and four runs in seven innings.
Center fielder Nate McLouth was 0-for-4 in his debut with Atlanta. The Braves acquired McLouth from Pittsburgh for three minor leaguers on Wednesday.
The Braves hope the addition of McLouth, who hit third, will spark their offense. Instead, they suffered their sixth shutout loss.
Pinch-hitter Greg Norton threatened to end Gallardo's shutout bid in the eighth when his long drive into the right-field seats was foul by only a few feet.