Atlanta Braves' Tim Hudson delivers a pitch during the second inning of a baseball game against the Miami Marlins, Tuesday, July 24, 2012, in Miami. (AP Photo/Wilfredo Lee)
MIAMI -- It wasn't pretty early. Once Tim Hudson settled down, he was unhittable.
Hudson pitched seven innings, including retiring the final 16 hitters he faced, to help lead the Atlanta Braves to a 4-3 victory over the Miami Marlins on Tuesday night.
"Hudson struggled in the beginning, had a tough time throwing the ball over the plate, but as the game went on he got better," Marlins manager Ozzie Guillen said.
Hudson (9-4) allowed a two-run home run to Jose Reyes in the second inning which gave the Marlins a 3-1 lead. After the homer, Hudson went on his streak before he was relieved by Eric O'Flaherty.
"Take away the home run, they really didn't hit the ball too hard," Hudson said.
Hudson allowed five hits and three runs as he threw 54 of 80 pitches for strikes. He improved to 13-4 in 24 starts against the Marlins.
"I threw some sinkers down in the zone and made them hit it on the ground and hopefully (the ball) goes to some of our guys," Hudson said.
Jason Heyward drove in two runs, and Martin Prado and Freddie Freeman both drove in a run for the Braves, who snapped a three-game losing streak.
Heyward broke a 3-all tie in the seventh inning with an RBI single off Wade LeBlanc (1-1) that scored Prado, who tripled to lead off the inning.
"(Heyward) is getting on base and getting big hits when we need them," Braves manager Fredi Gonzalez said.
"He's a force at the top of the lineup."
O'Flaherty pitched a scoreless eight and Craig Kimbrel pitched the ninth for his 29th save in 30 chances.
Heyward's sacrifice fly scored the Braves' first run.
Hanley Ramirez tied the game with an RBI single as Justin Ruggiano was thrown out on a close play at home by Michael Bourn to end the inning.
Reyes' two-run homer down the right-field line gave the Marlins a 3-1 lead. It was his sixth of the season. He extended his hitting streak to 12 games with a single in the first.
Mark Buehrle issued a bases-loaded walk to Freeman to pull the Braves within 3-2. Prado's sacrifice fly tied it.
Buehrle walked a season-high four batters. He allowed three runs -- two earned -- and five hits in five innings.
"Walking four guys, obviously that's not me," Buehrle said.
"I hate walking guys as it is, and bases loaded walk to bring a run that is kind of embarrassing. Just one of those days where I didn't have stuff."
Notes: Braves 3B Chipper Jones is hitting .369 (31-for-84) in his last 23 games. ... Before the game, Guillen said LeBlanc would step into the starting rotation with the departure of Anibal Sanchez and will make his first start of the season on Saturday against San Diego, his former club. Emilio Bonifacio will be the everyday second baseman with Omar Infante in Detroit. ... Miami Heat free agent forward Juwan Howard threw out the ceremonial first pitch. ... Braves RHP Tommy Hanson (10-5, 4.50 ERA) will start the series finale this afternoon against RHP Ricky Nolasco (8-8, 4.55 ERA). Hanson is 5-2 with a 2.56 ERA in nine starts against the Marlins.