Philadelphia leads New York by 1½ games in the NL East. Its magic number for clinching the division remained at four.
The Phillies twice had serious shots at big innings against the oft-injured Hampton (3-3). They left the bases loaded in the third and ran themselves out of a rally in the sixth to lose for only the second time in 12 games.
Hampton pitched out of a pair of jams and allowed only two runs in six innings to win for the first time since Aug. 16, against San Francisco. Kelly Johnson extended his career-best hitting streak to 21 games.
Mike Gonzalez worked the ninth for his 14th save. He was the last of three Atlanta relievers - and none of them allowed a hit over three scoreless innings.
The Phillies send second-half sensation Brett Myers to the mound Wednesday night to try and give them the series win and a needed cushion in the standings. They won the East last year on the last day of the season.
Cole Hamels (14-10) was shaky early and the power pitcher committed a throwing error that led to an unearned run in the third inning.
Those "Fightin' Phils" rally towels were stashed away most of the game and all that brief, enthusiastic waving abruptly turned into familiar booing after each stalled scoring threat.
The Phillies heard plenty of them at the end of the sixth.
Philadelphia trailed 3-1 in the sixth when Ryan Howard led off with a liner to the right-field corner that scooted away from Jeff Francoeur and resulted in a triple. Pat Burrell followed with a double off the center field wall just a couple of bat lengths away from the 409-foot sign to make it 3-2.
The fans went wild and whipped around their towels, hopeful their enthusiasm would help spur the Phillies to take the lead.
Instead, Burrell was caught between second and third on a grounder to short and tagged out. Shane Victorino, who reached on the fielders' choice, was caught stealing second, and Pedro Feliz grounded out to end the inning.
That was all for Hampton, who allowed six hits and two runs in his best attempt at playing pennant race spoiler.
Hampton had some nifty defensive help in the third to get bailed out of a jam and keep a 2-1 lead.
Chase Utley doubled with two outs, Jayson Werth reached on an error and Howard walked to load the bases. Burrell, who hit a three-run homer in Monday's win, hit a foul pop and hard-charging third baseman Martin Pardo made a fantastic catch over the railing in front of Atlanta's dugout.
Hamels - who struck out seven in seven innings - settled down and retired 10 straight to keep the Phillies in the game. But Kotchman's second homer with the Braves (he hit 12 for Los Angeles) in the sixth inning made it 3-1.
Hamels' blunder in the third cost him an unearned run.
Johnson led off the third with a single that smacked off the "Phillies" on Howard's jersey and got away from the first baseman. He moved to second on a single. Johnson tried to steal third and Hamels would have easily nailed him, but the pitcher's errant throw went into foul territory for an error and Atlanta went up 2-1.
The Braves led 1-0 on Johnson's RBI single to center in the first.
The Phillies made it 1-1 in the second when Feliz poked an RBI single to right. But again, they wasted another prime scoring opportunity when Victorino grounded into a double play an at bat earlier.
Notes: The Phillies ended their club-record streak of consecutive games with a homer at 18. ... Johnson's 21-game hitting streak is the longest in the NL this season. ... Braves 3B Chipper Jones wasn't in the starting lineup for the fourth straight game because of right shoulder inflammation.