• Quotable: "Two hits in one inning? I probably haven't had two at-bats in one inning since Little League, since I was 10 or 11 years old." Bennett, talking about his ninth-inning production.
• Welcome back: David Eckstein returned to the Cardinals lineup for the first time since May 25. He had a single and got hit on his elbow by a pitch from Roy Oswalt.
-- ESPN.com news services
Cardinals 8, Astros 1
Juan Encarnacion and Gary Bennett hit their first homers of the season on consecutive pitches in a seven-run ninth inning to lift the Cardinals to an 8-1 victory over the struggling Astros on Friday night.
Encarnacion's homer hit the wall above the yellow line in left field and broke a 1-all tie. Bennett extended the lead with his home run, also to left, on the next pitch from Chad Qualls (4-3). Bennett added a two-run double later in the inning that made it 8-1.
Bennett was shocked at his ninth-inning production.
"Two hits in one inning? I probably haven't had two at-bats in one inning since Little League, since I was 10 or 11 years old," he said with a smile.
The Cardinals have won three straight, while Houston has lost 11 of 12.
Houston ace Roy Oswalt was visibly upset after the game and said the lack of scoring when he pitches has been "tough mentally" for him. The Astros have been outscored 84-31 in their last 12 games.
"It's just hard to throw up zeros," Oswalt said. "You get out there and you get in a situation where you feel like you have to throw a perfect game. And if you give up one or two it's an uphill battle the rest of the game."
Oswalt allowed four hits and one run and struck out four in seven innings.
"I'm terribly disappointed in the way we played tonight," Astros manager Phil Garner said. "I keep saying it. I keep believing it. I think we're better offensively than we're showing. But we've got to start showing it pretty soon here."
Houston tied it at 1 in the sixth when Carlos Lee hit an RBI double off starter Adam Wainwright on the 14th pitch of his at-bat. Lee's hit sailed over a sprinting Jim Edmonds and landed on the hill in center field.
"That's the best at-bat I've ever had against me," Wainwright said. "That was just absurd. I threw everything I had at him. I pitched him in, I pitched him up. I threw sliders, fastballs, curveballs. The only thing I had left was a changeup, and that's what he hit. I thought I was going to have to start casting knuckleballs up there."
Ryan Franklin (2-0) allowed one hit and walked one in the eighth for the win.
Wainwright gave up a double to Hunter Pence in the first inning and didn't allow another hit until Pence's single in the sixth. He allowed four hits and one run with six strikeouts in seven innings. He had won both of his previous starts against Houston this season.
"He showed how special he can be," Cardinals manager Tony La Russa said. "He did a great job to get out of the first inning, and after that, he was just really sharp."
Oswalt retired the first eight batters before giving up consecutive singles to Wainwright and David Eckstein in the third. Spiezio grounded out to end that inning.
Eckstein, who returned to the lineup Friday after missing five straight games with back spasms, was hit in the elbow by a pitch from Oswalt in the fifth inning. He jumped around wildly while holding his arm in pain before he was attended to by trainers and remained in the game.
"David's going to be very sore tomorrow," La Russa said. "We'll just have to see on him."
OF Chris Duncan missed the Colorado series and will miss the entire Houston series with bursitis and an infection in his left knee. ... Cardinals 3B Scott Rolen left the game after two innings with a strained right hamstring. "I think it's going to take a couple of days," La Russa said. "He said he hurt it when he was running to first base." ... Houston placed reliever Rick White on the 15-day DL with a pinched nerve in his neck. ... The Astros purchased C Eric Munson's contract from Triple-A Round Rock and moved C Hector Gimenez from the 15- to the 60-day DL.