The Houston closer earned his 15th save in 18 chances after Pedro Feliz smacked a liner off his face. Valverde allowed four hits and two runs in an eventful ninth, before Shane Victorino flew out to center with runners on second and third to end it.
"I wanted to throw a strike for my team," Valverde said. "I wanted to finish the game and do a celebration after that."
Pat Burrell led off the ninth with a single and went to second when center fielder Michael Bourn misplayed it. One out later, Valverde got drilled by Feliz's hit and the Astros right-hander immediately went down. Burrell scored on the play to make it 4-2.
The ball glanced off Valverde's glove before it hit him.
"If it hadn't hit my glove," he said, "I don't know what would've happened."
Valverde said he never lost consciousness. He said his first clear thought was about Chris Young, the San Diego Padres' pitcher who was struck by a liner off Albert Pujols' bat on Wednesday. Young's nose was broken.
"I said, 'Oh, my goodness, I don't want to be like that,'" said Valverde, who led the majors with 47 saves last season.
Houston's medical staff and all the infielders rushed to the mound and Valverde hopped up after a few tense minutes. Feliz may have been the most anxious one of all.
"In the beginning, it looked like he was hurt," Feliz said. "It didn't look good from what I saw. I was happy to see him get up."
Trainer Rex Jones asked Valverde a few questions and shortstop Miguel Tejada offered him a message in Spanish.
"Miggy told me, 'This is your life. It doesn't matter what happens in the game. It's your life,'" Valverde said. "I said, 'I'll be OK.'"
After Valverde threw a few warm-up pitches, Carlos Ruiz singled before Valverde struck out pinch hitter Chris Coste. Jimmy Rollins singled to right to score Feliz and cut the Houston lead to 4-3, but Victorino couldn't provide another clutch hit for the Phillies.
"Valverde probably did one of the most amazing things I've ever seen on a baseball field," Pence said.
Brandon Backe (4-5) struck out six and gave up six hits in 7 1/3 innings to help the Astros win for the 11th time in their last 14 home games.
Pence, in his second season, had his third career two-homer game and Bourn added an RBI single for the Astros.
Philadelphia starter Adam Eaton (0-3) allowed Pence's two homers and eight hits in all to lose for the third time in four starts.
"Obviously, I made a few mistakes," he said. "Those two home runs that Pence got were up and over the plate. If you asked him where he'd like them, he'd probably say right where I threw them."
Burrell hit a solo homer for the second straight night to put the Phillies up 1-0 in the second inning. Burrell has six homers in his last 10 games against the Astros.
Eaton allowed only a double to Ty Wigginton and a single to Tejada in the first four innings. Pence led off the fifth with a solo homer just inside the foul pole in right.
By then, Backe was cruising. Burrell grounded out to start the seventh before Backe struck out Geoff Jenkins and Feliz, who was hitting .319 in his last 19 games.
"The whole game, I felt pretty good," said Backe, who threw 105 pitches.
Eaton had lasted more than six innings only once this season and Pence opened the Astros' seventh with a homer into the left-field porch.
Pence's first career two-homer game came last Aug. 31 against the Chicago Cubs at Wrigley Field. ... The Phillies lead the majors with 71 home runs. ... After getting Berkman to pop up for the final out in Thursday's game, Lidge got a text message from the Astros slugger that said, "I hate you." Lidge played for the Astros from 2002-07. He also got text messages after the game from catcher Brad Ausmus and former Astro Jason Lane, who now plays for Scranton/Wilkes-Barre, the New York Yankees' Triple-A affiliate.