Updated

Freddie Freeman went 3-for-3 with a solo homer, Kris Medlen tossed 7 1/3 scoreless innings and the Atlanta Braves beat the San Diego Padres, 2-1, in the second test of a three-game series.

Chris Johnson went 2-for-4 with an RBI for the Braves, who saw their magic number to clinch the NL East shrink to four. Washington lost to Philadelphia on Saturday and now trails Atlanta by 11 games in the division.

Medlen (14-12) gave up just four hits while striking out five for Atlanta, which bounced back from a 4-3 loss in the series opener on Friday. The right- hander won his fourth straight start.

"I think tonight more than even the past few, I established all three pitches early," Medlen said. "I knew I was going to have to establish all three, and usually it takes a couple innings to kind of get the curveball going, but everything felt really good from the get-go, and I just mixed pitches pretty nicely."

Robbie Erlin (2-3) got the start for San Diego and allowed two runs on eight hits over six innings.

Johnson's RBI single in the fourth broke a scoreless tie. Justin Upton and Freeman hit back-to-back singles to start the inning, and following two quick outs, Upton raced home on Johnson's single to left.

Freeman led off the sixth with a homer to left to increase the lead to 2-0.

"In the later innings, [my pitch count] crept up, resulting in a home run and base hits," Erlin said. "But I'm feeling more confident with my offspeed pitches."

Meanwhile, Medlen was on cruise control after stranding runners on first and second in the second. He was replaced by David Carpenter in the eighth after giving up a one-out single to Will Venable, who stole second before Carpenter retired the next two batters.

Chase Headley's homer off Craig Kimbrel in the ninth made it a one-run game. Kimbrel, though, worked around a two-out walk to record his career-best 47th save -- the most in the majors this season.

Game Notes

The Padres lead the season series by a 4-1 margin ... Medlen improved to 3-2 lifetime against the Padres ... Atlanta's B.J. Upton drew three walks ... San Diego went 0-for-4 with runners in scoring position and stranded seven.