"You're going to have to have a lot of things go your way to beat them, and we didn't have that tonight," said Hampton, who gave up seven hits and five runs (four earned) in 5 2/3 innings en route to losing his second consecutive start.
Los Angeles starter Clayton Kershaw (8-5) held Houston to two hits in seven scoreless innings, but the Astros sure made it interesting in the final two innings.
They scored twice in the eighth -- and probably should have had a third run -- and had slugger Lance Berkman at the plate in the ninth inning representing the tying run. But Dodgers closer Jonathan Broxton struck out pinch-hitter Ivan Rodriguez with the bases loaded to end the game.
"We felt with a five-run lead that our bullpen could do it, and even though it was a little hairy for a while, we did it," Los Angeles manger Joe Torre said.
Hampton got off to a rocky start, giving up two runs in the first inning, but the Astros' defense didn't help. Rafael Furcal led off with a single and scored when Carlos Lee came up short on an attempted sliding catch of Orlando Hudson's liner to left field, which went for a triple. Hudson scored on Matt Kemp's single to make it 2-0.
Hampton (5-7) bounced back to retire 12 in a row to keep the game at 2-0 in the sixth inning.
"I felt like I settled in," he said. "I started getting a better game plan. Certain things happen here and there and it could have been a lot tighter ballgame. They scored runs when they had to in a bunch of different ways. It was one of those nights."
No play was stranger than how the Dodgers scored their final run of the game in the sixth.
With the bases loaded and one out, Kemp drove in a run by hitting into a fielder's choice to make it 3-0. Mark Loretta followed with an RBI single, but when Hampton got the ball back from catcher Humberto Quintero, he tried to slam it into his mitt and missed, and the ball rolled away.
Hampton thought home plate umpire Mike DiMuro had called timeout after Casey Blake had slid home on Loretta's single, but Kemp hustled home from third on what was ruled an error, putting the Astros in a 5-0 hole.
"It was my fault," Hampton said. "I thought I had timeout, but I thought when he did the safe call he kind of put his hands up [to signal timeout]. I went to him and said, 'You called timeout.' And he said, 'No, Mike, I didn't.' I thought he did. I wasn't going to argue or yell at him because he told me, 'Mike, you didn't call a timeout.'
"My initial reaction when I ran over to get it was I thought I saw him with his hands up. I think he was giving the safe call, and I thought he put his hands up after that. It was a stupid play on my part and it was made out of frustration and cost me a run. We didn't score the runs we needed to make a difference, but still it's something that shouldn't have happened."
Things got even crazier during the eighth inning, as the Astros started to mount a comeback with Kershaw out of the game.
Jason Michaels' RBI single against reliever James McDonald got the Astros on the scoreboard, and Michaels scored to cut the lead to 5-2 on an error by center fielder Juan Pierre. With a runner at third base and two outs, Jeff Keppinger appeared to beat out an infield hit on a close play at first that would have scored Michael Bourn from third and kept the inning going.
But Keppinger was called out, and the Astros' dugout erupted in anger. Cooper stormed onto the field and was ejected in a matter of seconds.
"It kind of takes the steam out of everything," Cooper said. "It really was a bad call. In the heat of the moment, that's the game for us. It's a chance to get a third run and bring the tying run to the plate in that particular situation. That's pretty huge for us, and it kind of took the steam out of us a little bit."
Keppinger knew he beat the throw from the second baseman Hudson, and television replays backed him up. But for the Astros, it was just one of those nights.
"He missed the call, but it happens," Keppinger said. "He's human. He just told me I was out. I told him he missed it. That was it."