ATLANTA -- The Atlanta Braves have seen Cole Hamels enough to know that little comes easily against the Philadelphia Phillies left-hander.
"He threw the ball well and beat us," left fielder Justin Upton said. "We'll just regroup and come back (Sunday)."
Chris Johnson drove in Upton for the Braves' only run, and Hamels scattered four hits in seven innings to beat Atlanta 2-1 on Saturday night.
Jimmy Rollins hit his 12th homer, a two-run shot in the seventh off Shae Simmons (1-1), to provide the Phillies' offence.
Hamels (4-5) won for the second time in three starts, giving up one run, striking out nine and walking none. He threw 71 of 95 pitches for strikes.
Braves manager Fredi Gonzalez knew Hamels was going to be tough to beat when he saw the early command of his fastball.
"It's not a straight fastball," Gonzalez said. "It sinks and it cuts a lot to the right-handed hitters, and it's not an easy at-bat. He did that against us."
Atlanta, which had a three-game winning streak snapped, cut its deficit to 2-1 in the seventh inning on Johnson's RBI double. The Braves are tied with Washington for first place in the NL East.
Jonathan Papelbon earned his 21st save in 23 chances, needing only five pitches to retire Andrelton Simmons on a groundout, Freddie Freeman on a lineout, and Justin Upton on a popup.
Grady Sizemore reached base four times, going 3 for 4 and scoring on Rollins' homer for the last-place Phillies.
The only baserunner Hamels allowed through the first 4 2-3 innings was Jason Heyward, who was hit by a pitch in the second. Tommy La Stella got the first hit off Hamels, a double in the fifth.
Hamels made 50 of his first 65 pitches for strikes before pinch-hitter Tyler Pastornicky singled in the sixth.
"Things felt good in the bullpen leading into the game and things transpired from there," Hamels said. "But I definitely understand how difficult it is to reach that type of level."
Braves starter Aaron Harang pitched six scoreless innings, allowing five hits and three walks with five strikeouts. The right-hander, who had won his last four starts, has a 2.18 ERA in his past five outings.
Hamels, 3-3 with a 1.78 ERA in nine road starts this year, received a no-decision in Atlanta on June 16 despite pitching seven scoreless innings in Philadelphia's 13-inning victory.
Hamels improved to 15-8 with a 3.34 ERA in 31 starts and one relief appearance against the Braves. Ben Revere pinch-hit for him in the eighth.
"I've known Cole for quite a while," Harang said. "I watched him pitch in high school from being there in San Diego. I've seen him really grow as a pitcher. He was out there being efficient, really attacking the zone and making us be aggressive."
Phillies manager Ryne Sandberg unsuccessfully challenged that Johnson was thrown out at second base in the seventh. Johnson stretched a single into a double by beating Chase Utley's tag attempt.
NOTES: In 117 career games at Turner Field, Rollins has 11 homers and 45 RBIs. ... Simmons gave up two hits and two runs and got only two outs. ... Phillies LHP Cliff Lee, on the disabled list since May 20 with a strained elbow, is scheduled to start Monday at home against San Francisco. ... Braves C Evan Gattis, on the DL since July 1 with a bulging disc in his back, is expected to return from a rehab assignment with Triple-A Gwinnett next week against Miami. ... Atlanta optioned struggling LHP Luis Avilan to Gwinnett and purchased the contract of LHP Chasen Shreve from Double-A Mississippi. Shreve became the seventh Braves player to make his major league debut this year when he struck out Ryan Howard to end the seventh. ... Phillies C Carlos Ruiz, on a rehab assignment with Single-A Clearwater, went 1 for 3 with a walk, a stolen base and scored two runs on Friday. Ruiz has been sidelined since June 27 with concussion symptoms. ... The Braves' Aug. 10 home game with Washington has been moved from 1:30 p.m. to 8:07 p.m.