"Our offense is getting there," said manager Charlie Manuel. "It's getting better. We've got to hit to win."
For the second straight night, the Phillies fell behind after a first-inning home run -- a two-run poke by Michael Young -- then took the lead with a second-inning, three-run spurt.
They added three more in the third, when Chase Utley and Ryan Howard each hit home runs. Utley tied Dan Uggla for the Major League lead with his 23rd dinger of the season.
Howard's two-run upper-deck blast, his 20th, pushed the lead to 6-2.
"It's one of those things where the entire team went into a lull at the same time," Howard said. "You don't really see that too often. The thing now is trying to get out of it."
Unlike Brett Myers a night earlier, Cole Hamels didn't surrender a lead, and the Phils made their lead stick against the Rangers and their old friend Vicente Padilla.
The first of the Phillies' two three-run frames included three consecutive hits. The last time they did that was the eighth inning of a 20-2 win on June 13, a span of 111 innings.
That date was also the last time Utley and Howard homered in the same inning.
Hamels faltered in the fifth, giving up a pair of runs to close the gap to 6-4. It didn't help that a steady rain began a few innings earlier, but the San Diego-raised Hamels fought through the wetness that made for slick baseballs.
"We don't have a lot of rain in San Diego," Hamels said, with a laugh. "I can't control the weather, even though I was lucky to live in the best-weather city possible. You're going to have an occasional wet ball and you have to grip it a little tighter and get those outs."
Hamels fanned Josh Hamilton, the Major Leagues' leading RBI producer, to end the fifth, then survived two more innings. The Phillies added single insurance runs in the sixth and seventh, and they would need them.
Texas staged a two-out rally with nobody on in the eighth off Chad Durbin, spurred by a catcher's interference call against Chris Coste that awarded Milton Bradley first base instead of becoming the third out. The Rangers plated two runs.
Brad Lidge worked around a leadoff double to Ramon Vazquez to record his first save since June 12 and remained perfect in 19 chances. The double came on the fourth of four straight fastballs, and Lidge then fired off 12 straight sliders. Ian Kinsley grounded out, Young singled and Hamilton struck out.
Lidge threw two more sliders to Milton Bradley, then struck him out on a high fastball.
"In a situation like that, my slider is my best pitch," Lidge said. "Young got one that didn't break. At that point, I was like just going with my best stuff. I haven't had that kind of adrenaline in a while."
Proving that he is still part of the team, Lidge also expects the offense to come around. While taking solace in moving two games ahead of the Marlins in the National League East, Lidge senses an awakening for the offense.
"Our offense is tremendous," he said. "Overall, we're not playing our best baseball. When you see the offense come around like they have the last two nights, that's a good sign that we're going to get on a roll."