It marked the fourth time this season the Phillies lost a game in which Hamels gave up two or fewer earned runs over seven or more innings.
"Cole was real good," manager Ryne Sandberg said. "Hard to not think that it's a waste of a solid start."
The decisive run came in the third. Jose Lobaton reached base with one out after Asche botched a routine chopper and misfired to first. Lobaton went to second on a sac bunt from Nationals starter Stephen Strasburg before Denard Span drove him in with an RBI single to right-center field.
The hit extended Span's on-base streak to 29 games.
Meanwhile, Strasburg matched Hamels with the best performance of his 2014 campaign. He fired seven scoreless innings and allowed just three hits while striking out 10.
The Phillies threatened on three separate occasions against Strasburg, putting a runner on second base in the fourth, fifth and seventh. But they couldn't find a timely hit to even the score.
"I was trying to get more consistent with all my pitches, locating them a little bit better," Strasburg said. "If you do that, it's easier to execute the game plan."
Sandberg opted to pull Hamels after just 86 pitches -- 66 of them strikes -- to bring in pinch-hitter Reid Brignac with one out in the eighth of a 1-0 game. But Brignac went down on strikes against setup man Tyler Clippard, who tossed a perfect frame.
After the game, Sandberg said he made the decision to remove Hamels because the team was running out of outs. If Asche had gotten on base to lead off the inning, Sandberg said he would have considered having Hamels bunt to keep him. But Asche popped up, forcing Sandberg to make the aggressive substitution.
"It's the name of the game," Hamels said. "We're just trying to win, and I think that's the philosophy you have to have every time. Every day we go out there, you play to win. The selfish statistics of going deep into games and complete games, no matter if they're wins or losses, it's kind of nice every once in the while.
"But at the same time, I have a lot of respect for Ryne trying to win the ballgame and trying to make sure that guys understand that we're not giving up. It's the case where until we're mathematically eliminated, we're trying to win every ballgame we can."
The Nationals added insurance in the eighth off right-hander Ken Giles when RBI doubles from Anthony Rendon and Jayson Werth extended the lead to 3-0. Werth eventually came around to score on a wild pitch by lefty Jake Diekman.
"Just forget about it and move on," said Giles, who's ERA rose from 0.87 to 1.71. "Can't do anything about it. It's in the past, and I have to look toward the future."
Washington closer Rafael Soriano followed with a 1-2-3 ninth.
"Tough games, it comes down to timely hitting and execution," Hamels said. "I wasn't able to execute the one pitch [to Span], and then we weren't able to execute and get some timely hitting."