Hanson allowed two runs on five hits for the Braves, who have won 10 of 11. Hanson (2-2) struck out seven, walked one and retired the last 13 batters he faced.
Catcher Brian "McCann did a heck of a job with him," said Braves manager Fredi Gonzalez. "He kinda got the hamster back on the wheel. It certainly was different than the last couple of games here."
Uggla broke a 2-2 tie with a one-out towering drive to left, his 12th career home run against the Diamondbacks.
"I was hoping we were going to keep putting some runs up but it ended up being enough," said Uggla of the Braves' hitters, who has scored 19 runs in the series' first two games. "They (the pitchers) picked us up tonight. They've been grinding right along with us."
"It's comforting from my standpoint and the team's standpoint to know they're going to go out and get the job done," Hanson said.
Arizona starter Joe Saunders (1-1) settled down after Uggla's home run, retiring 13 of his final 14 batters, but couldn't prevent the Diamondbacks' fifth straight loss.
"We had opportunities then they just shut us down," said Arizona manager Kirk Gibson. "They were pretty dominant and have been all series. Our guys have been trying but it seems like when you try too hard you over think it. It's very hard to hit that way."
Saunders gave up three runs -- two earned -- on six hits and a walk over seven innings and struck out five and saw his ERA creep up to 1.29.
Struggles at the plate have been a problem for the Diamondbacks, who have scored two runs or less in four straight games.
Saunders walked Chipper Jones with the bases loaded in the first to give the Braves a 1-0 lead. Arizona tied it in the bottom of the inning when Gerardo Parra singled, went to third on a double by Upton and scored on an RBI groundout by Miguel Montero.
"He wasn't 100 percent but he was out there for his teammates," Gibson said of Upton. "It was pretty good arms he saw tonight."
Jack Wilson singled and scored on Martin Prado's two-out single in the second to make it 2-1. But Kubel tied the game for the second time with his home run, his first since August 31 for the Minnesota Twins against the Chicago White Sox.
Atlanta entered the game with 74 runs scored in its previous 10 games and had lost three of four games this season when scoring three or fewer runs. ... Saunders has allowed four runs -- three earned -- in 21 innings. ... Kubel's home run ended a streak of 101 at-bats without a homer for the Diamondbacks. . Atlanta RF Jason Heyward's 10-game hitting streak was snapped. He went 0 for 4 and was called out on strikes in his first and last at bats. ... Upton is 4 for 9 in his career against Hanson. ... Diamondbacks RHP Ian Kennedy will attempt to win his third game without a loss and also end Arizona's losing streak on Sunday afternoon when he faced Atlanta RHP Randall Delgado. Delgado has won both his starts despite getting only one out above the minimum five innings needed to qualify for a win in each.