The Braves remained 4 1/2 games behind NL East-leading Washington, which earned a 6-4 win at San Francisco.
Uggla is hitting only .215 but has homers in two straight games, giving him 15 for the season. He is hitting .267 with three homers and 13 RBIs in August.
"I'm getting some hits, driving some runners in and scoring some runs," Uggla said. "That's when you know you're getting back on track when you're creating some run production. That's the only thing I really care about, scoring runs and driving in runs."
This is the first time the All-Star second baseman has hit homers in back-to-back games this season.
Uggla was hitting only .173 on July 4 last season before he launched a dramatic turnaround. His career-best 33-game hitting streak, the longest for the Braves in their Atlanta era, helped him to be selected NL player of the month for August. He finished with a career-best 36 homers and lifted his average to a still-modest .233.
"We saw it last year," Braves manager Fredi Gonzalez said. "This is a good time for him to get hot and drive in some runs."
Edinson Volquez gave up six runs and seven hits and two walks in only 3 2/3 innings.
Following a six-game stretch where he was 3-0 with a 1.55 ERA, Volquez (7-9) has allowed four or more runs in four straight starts. He has not completed the fourth inning in his past three starts.
"It's kind of frustrating because I'm used to going deep in games," Volquez said. "Now the last three starts have been kind of short. We'll see what happens the next game."
Maholm (11-7) gave up five hits and one run in seven innings in his first home win since his July 30 trade from the Cubs.
Maholm survived a fourth-inning jam when he walked Everth Cabrera to load the bases with one out. He then struck out Nick Hundley and Volquez to end the threat. Hundley was 0 for 4 and is hitting .157.
"Obviously, I'm not going to give into Cabrera when I have Hundley and the pitcher coming up," Maholm said.
"I try to keep the same mindset no matter what, not give in."
San Diego took a 1-0 lead on Logan Forsythe's third-inning homer, a fly ball that hit the net on the fair side of the left field foul pole and barely cleared the wall. Forsythe stopped running before second base, apparently believing the ball was foul.
Volquez, who leads the majors with 86 walks, walked Uggla to open the second. Juan Francisco followed with a double, sending Uggla to third, but the Braves could not score. Uggla was thrown out at the plate by first baseman Yonder Alonso on Brian McCann's grounder. Paul Janish hit a popup and Maholm struck out.
Uggla's three-run homer off Volquez was a line-drive shot that quickly reached the left-field seats.
"Wrong pitch," Volquez said. "I threw a fastball up in the zone and he put a pretty good swing to it."
The homer by Uggla saved the inning for the Braves after Prado was caught in a rundown between third base and home on Freddie Freeman's grounder to Volquez. Uggla's homer drove in Heyward, who doubled, and Freeman.
Atlanta added three runs in the fourth. Michael Bourn's groundout drove in Janish, who was hit by a pitch. Heyward's two-run double to center pushed the lead to 6-1 and knocked Volquez out of the game.
"It wasn't the bases on balls that got him," said Padres manager Bud Black of Volquez.
"If he executes a couple pitches, different story. The two-out home run to Uggla was a back-breaker. And then the two-out double to Heyward was a back-breaker."
The Padres are 3-3 with one game remaining on their seven-game road trip. ... Fans chanted "Bobby! Bobby!" when former Braves manager Bobby Cox moved through the crowd behind home plate in the fifth inning. ... Braves RHP Jair Jurrjens, on an injury rehab stint with Triple-A Gwinnett with a right groin strain, left Wednesday night's game at Norfolk due to dizziness. ... OF Matt Diaz, on the DL since July 21, will miss the remainder of the season after having surgery Wednesday to remove scar tissue and "foreign body" from his right thumb. ... 3B Chipper Jones was given a scheduled rest. ... Former Braves RHP Jason Marquis will pitch for the Padres against RHP Kris Medlen in Thursday night's final game of the four-game series.