ATLANTA -- Brian McCann hit two homers for only the second time in his career, drove in four runs for the second straight game and then, like a good catcher, bragged about his pitcher.
Andruw Jones and McCann hit back-to-back homers to start a six-run sixth inning that put the game out of reach after McCann hit a three-run shot in the first inning.
The Braves, who have won 10 of 14, pulled to within 1½ games of the first-place New York Mets in the NL East.
McCann, coming off his second All-Star appearance, was 3-for-4.
Hudson (9-5) gave up five hits and walked one batter. He had four strikeouts and is 3-0 in his last four starts.
"He obviously was on top of his game," Pirates manager Jim Tracy said of Hudson. "He pitched very, very well."
Said Hudson: "It's what we needed to start off the second half."
The Braves had seven hits in the big inning, knocking Pirates starter Ian Snell out of the game. Snell (7-6) gave up eight hits and seven runs -- four earned -- in five innings. He was charged with four runs in the sixth after allowing three unearned runs in the first. His ERA climbed from 2.93, fifth in the NL, to 3.11.
The Braves, next to last in the NL with a .248 home batting average at the All-Star break, started the second half with 11 hits.
Hudson hit a bases-loaded single and Edgar Renteria added a two-run single as the Braves sent 11 batters to the plate in the sixth. Chipper Jones and Matt Diaz also drove in runs in the inning.
Snell said Hudson's strong game didn't give him a chance to rest between innings.
"I was getting tired," Snell said. "Everytime we came out to hit, it was like two seconds. As soon as we sat down, it was time to go back out."
Adam LaRoche, making his first return to Atlanta after he was traded to the Pirates on Jan. 19, committed a fielding error on a strange first-inning play that set the stage for three unearned runs.
With two outs, Chipper Jones hit a sharp grounder to LaRoche, who dropped the ball as he began to run to first base. LaRoche looked back and continued to move toward first as he saw second baseman Freddy Sanchez pick up the ball.
With both LaRoche and Snell running to cover first, Sanchez flipped the ball toward the bag, but the throw hit LaRoche on his back as Jones was safe on the play. LaRoche earned the error for the fielding miscue.
"I thought it was in my pocket," said LaRoche. "I thought it hit the web. I thought I had it, but it popped out."
Snell then walked Andruw Jones, and McCann followed with the three-run homer to right for a 3-0 lead.
"It was horrible," said Snell of the first inning.
Added Tracy: "The first inning kind of set the tone for the game."
McCann, who homered and drove in four runs against San Diego in the last game before the All-Star break, has four homers and 12 RBI in his last six games.
McCann said he has "no idea" how to explain his hot streak.
"That's why no one can perfect this game," he said. "One day you feel terrible at the plate and not see one pitch, the next day you see the ball really, really good."
Andruw Jones, who hit only seven homers in a combined 54 games in May and June, has four homers in nine games in July.
"Andruw is going to carry us in the second half," McCann said.
Andruw Jones left in the sixth inning because of a right quad injury but said he expects to play Saturday. ... Snell had his shortest outing since lasting five innings in a 7-1 loss to the Cubs on May 2. ... McCann's only other career two-homer game came on Sept. 24, 2006, against Colorado. ... The Braves hit back-to-back homers for the third time this season. ... Hudson will celebrate his 32nd birthday on Saturday.