Corey Hart stayed patient and found a way to get the job done.
Hart keyed a three-run, eighth inning rally and the Brewers rallied to beat the Braves 4-1, staying close to the Cubs in the NL Central race.
The Brewers, who had lost two straight, rallied off Hudson (16-9) to remain 1½ games behind Chicago, who beat Pittsburgh 13-8 earlier Friday.
"I had a feeling if we could keep it close we surely would fine a way to score some runs," said Milwaukee manager Ned Yost. "I felt like we were getting good at-bats all game, but hitting it right at somebody. We just couldn't find any holes."
The Braves, who began the day 4½ games behind the New York Mets in the NL East and 5½ behind the San Diego Padres in the wild-card race, lost a game they couldn't afford to lose.
The Brewers were in the same position, and knew it coming into the game.
"We're all fans and naturally rooting for whoever is playing the Cubs. And you're going to scoreboard watch," said Hart.
Hudson had a five-hit shutout going when Ryan Braun singled with two outs and nobody on in the eighth. Prince Fielder followed with a single and Hart lined his third hit, a run-scoring single to right, tying the score at 1. Fielder took third and Hart second when Atlanta right-fielder Jeff Francoeur bobbled the ball. Geoff Jenkins was walked intentionally to load the bases.
"I was just trying to keep the ball in play anyway I could," said Hart, who raised his average to .301 with 21 home runs, 73 RBI and 22 stolen bases.
"He's quietly a star," said Yost. "He's a run producer, a 20-20 guy, an offensive catalyst."
Hudson was replaced by Ron Mahay, who walked pinch-hitter Joe Dillon on four pitches, forcing in Fielder with the go-ahead run. Bill Hall then singled to right, scoring Hart. Francoeur, however, threw Jenkins out trying to score from second.
Until then, Hudson, who blanked the Washington Nationals 3-0 in his last start, the Braves only complete game of the season, hadn't allow a run in 17 innings.
"They took what they had and made the best out of it in that (eighth) inning," said Hudson. "Four times through the lineup, they'd seen pretty much everything I had."
The Brewers, who haven't made the playoffs since 1982, ended the Braves five-game winning streak, which had matched their season high.
Milwaukee added a run in the ninth on a sacrifice fly by Damian Miller.
The Braves won the opener of the four-game series 3-1 on Thursday night. Milwaukee, which has the best home record (47-27) in the league, are a dismal 32-47 on the road. They have nine games left, two more against Atlanta before returning home for its final seven games, three against St. Louis and four against San Diego. Chicago has eight games remaining.
Milwaukee starter Carlos Villanueva allowed three hits in six innings, including a solo home run by Mark Teixeira in the second, a 458-foot shot to right-center. It was Teixeira's 14th with the Braves. The first baseman, who was obtained in a trade with Texas on July 31, has 27 homers overall.
"Every game is a big one now," said Villanueva. "It was fun being paired against one of the best in Hudson. It feels very gratifying. We never give up. We give everything we have."
Atlanta's Chipper Jones entered the game as the NL's top hitter (.342), but went 0-for-4 and dropped to .340.
The last Atlanta player to win the batting title was current batting coach Terry Pendleton with a .319 average in his 1991 MVP season.
- Braves manager Bobby Cox was ejected in the eighth, his 10th this season and a record 135th in his career.
- Braves' closer Rafael Soriano was given a four-game suspension on Thursday for hitting Florida's Dan Uggla. He appealed and a hearing will be held Tuesday in Philadelphia, where the Braves open a three-game series.
- Milwaukee ace Ben Sheets was diagnosed with a mild hamstring strain and is questionable for his next scheduled start on Sunday against Braves. He will throw some on Saturday and see how he feels.