ATLANTA — Tommy Hanson went six strong innings on a sweltering night and center fielder Jordan Schafer made an outstanding catch for the final out, leading the Atlanta Braves past San Diego 4-3 Wednesday and preventing the Padres from sweeping the series.
Freddie Freeman drove in two runs and Martin Prado homered to pace the Braves.
Hanson (6-4) allowed just three hits, giving up both runs on Kyle Phillips' two-run homer in the second. Three relievers finished up, with Craig Kimbrel escaping a drive to the wall in the ninth for his 16th save in 20 chances.
The Braves snapped San Diego's season-high four-game winning streak, which included a pair of one-runs victories over Atlanta to start the series. The Padres couldn't finish off their first three-game sweep at Turner Field since the park opened in 1997.
Clayton Richard (2-6) took the loss.
The Braves put struggling Dan Uggla back in the lineup, after giving him Tuesday off in hopes it would help the slugger could break out of his season-long slump. He was dropped to seventh in the order, the lowest he's batted all season.
Neither the rest nor the new spot seemed to help. Uggla went 0 for 4, popping out in the first with the bases loaded and watching his average sink to .175.
The Braves jumped on Richard right away. With one out in the first, Prado doubled to left-center and Chipper Jones reached on an infield hit, throwing a scare into Atlanta fans when he tumbled over first baseman Brad Hawpe, who was pulled off the bag by the throw.
Jones, already playing with a sore muscle in his left leg and a torn meniscus in his right knee, got up slowly but was OK — much to the relief of the Braves, who already have a patched-together lineup with Jason Heyward and Nate McLouth on the disabled list. In fact, Jones talked his way into the lineup, not wanting to weaken the offense even more to nurse his various ailments.
After the 39-year-old pulled himself together after the fall, Brian McCann singled to left to make it 1-0. Freeman followed with another run-scoring single to center, and Alex Gonzalez made it five straight hits off Richard to load the bases with one out.
That would've been an opportune time for Uggla to break out of his slump, but he popped out to second base on the very first pitch. Richard escaped the jam by getting Joe Mather on a called third strike.
The Padres tied it up in the second. After Hawpe led off with a single, Phillips connected with his second career homer, a one-out drive that barely cleared the wall in right. His first homer came Monday night, a solo shot in the 10th that gave San Diego a 3-2 win.
Hanson was pretty much untouchable after that, lasting six innings on night when it was 94 degrees for the first pitch. He retired 14 of the last 16 hitters he faced, the only baserunners coming on a pair of walks. The right-hander struck out four.
The Braves gave Hanson the run he needed for the win in the third when McCann doubled and Freeman drove him in with another two-bagger, an opposite-field shot inside the third-base bag.
Prado gave Hanson a cushion in the sixth, restoring the two-run lead by driving an 0-2 pitch from Pat Neshek over the wall in left with two outs. It was Prado's team-leading eighth homer of the season.
Pinch-hitter Jorge Cantu brought San Diego within a run, hitting a sacrifice fly off Eric O'Flaherty in the seventh. But Jonny Venters struck out the side in the eighth, and Kimbrel struck out two and got a great catch on the warning track by Schafer to end the game.
Schafer reached up to grab the drive by Logan Forsythe, then crashed into the wall in deep right-center. Kimbrel tied the mark for the most saves by an NL rookie before the All-Star break, matching Yhency Brazoban of the Dodgers in 2005 with plenty of time to eclipse him.
The Braves chased Richard in the fifth. He had baserunners all over the place, allowing eight hits and walking four in 4 2-3 innings. Finally, with two more Braves aboard, Neshek came on to retire Mather on a grounder.
NOTES: Schafer beat out an infield single in the second and has reached base in eighth straight games since being called up from Triple-A to replace McLouth. ... Padres OF Aaron Cunningham struck out as a pinch-hitter to end the seventh after being summoned from the minors before the game to replace Cameron Maybin, who went on the DL with a sore right knee.