Updated

Dan Uggla often wins praise for his hustle, and a short sprint helped him extend his hitting streak to 29 games Monday night.

The slugging second baseman beat out a grounder to shortstop and subsequently scored on a three-run homer by Alex Gonzalez to help the Atlanta Braves beat the slumping Florida Marlins 8-5 Monday night.

"Every hit counts," Uggla said. "You take the infield ones with the doubles in the gap. Hitting ain't easy."

Uggla has the longest active hitting streak in the majors, and he's tied with Rowland Office for the second-longest streak in franchise history behind Rico Carty's 31 in a row in 1970.

The streak comes after the two-time All-Star endured a miserable first three months of the season. Traded from Florida to Atlanta in November, Uggla was last in the majors in batting at .173 when the streak began, but he's up to .220 now.

"For what he went through in April and May, and keeping levelheaded, it's nice for him to do what he signed up for," manager Fredi Gonzalez said. "I give him all the credit in the world, because there would be a lot of guys moping around. He stayed the same guy."

After Uggla and Chipper Jones singled in the fifth, Gonzalez hit his 10th home run off Brad Hand (1-4).

Uggla added a sacrifice fly in the sixth. Atlanta's Michael Bourn drove in a run with his 30th infield hit, most in the NL, and added his 42nd stolen base. Freddie Freeman, whose career-best 20-game hitting streak ended Sunday, had a two-run single.

The short-handed Marlins fell to 0-5 on their homestand. They were without three starters injured in the past week — Hanley Ramirez, Omar Infante and Logan Morrison — which further hampered an offense that has scored 24 runs in 10 games against Atlanta this season.

Derek Lowe (7-10), who had lost his past three starts, allowed two runs in six innings. He escaped a bases-loaded jam in the first when Gaby Sanchez hit into an inning-ending double play.

"To get a big double play there gives you confidence, especially the way I've been pitching," Lowe said.

Craig Kimbrel struck out the only two batters he faced for his 35th save in 40 chances.

Fredi Gonzalez missed the finish. He was ejected for the third time this season for arguing balls and strikes from the dugout in the fourth inning.

"You can't argue balls and strikes," Gonzalez said. "I deserved what I got."

Freeman was also thrown out by plate umpire Hunter Wendelstedt when he complained after being called out on strikes in the eighth. Freeman said it was the first ejection in his life.

Not that many calls seemed to go the home team's way. Despite a suggestion by Marlins manager Jack McKeon that his players wear road uniforms, they opted for white and fell to 24-37 in home games. They're 31-23 on the road, the largest such disparity in the majors.

"That is the big mystery — how we can't win at home," Marlins utilityman Emilio Bonifacio said. "We can't let that frustrate you. We just have to keep our heads up."

Florida went 1 for 9 with runners in scoring position.

"I don't have the answer," McKeon said. "Lowe was not at his best tonight. We had the opportunities and we couldn't cash in. And we had the guys up there that we wanted to."

Florida trailed 8-2 in the eighth inning before Greg Dobbs hit his fifth home run and John Buck hit his 12th.

The Braves came in batting .222 against left-handers, but they totaled nine hits and seven in five innings off Hand. The rookie took some consolation from getting his first career hit and scoring his first run.

Notes: Braves C Brian McCann (strained oblique muscle) took batting practice for the first time since his injury and may be activated Friday, the first day he's eligible to come off the disabled list. ... LF Morrison (swollen right knee) was held out of the starting lineup but might return Tuesday. SS Ramirez (left shoulder) said he's improving but doesn't expect to play Tuesday. ... An official scoring change made hours after Sunday's Marlins-Cardinals game helped RHP Javier Vazquez's ERA. A double by the Cardinals' Corey Patterson was changed to an error on Morrison, making the three runs that subsequently scored that inning unearned. ... The Braves' Brandon Beachy is scheduled to pitch Tuesday against the Marlins' Clay Hensley in a rematch of the game July 29, which Atlanta won 5-0.