Tejada hit the game-ending, two-out RBI single that stuck Ryan Franklin with his first loss of the year, but it took a long, twisting road for Tejada even to bat in the ninth.
With the Cardinals leading, 3-2, Ivan Rodriguez led off the final inning with a slow-rolling ground-ball single up the middle against Franklin. Chris Coste tried to bunt Rodriguez over, but after two unsuccessful attempts at the sacrifice, he swung away and launched an RBI double into center field that tied the score. It was Coste's hit that Franklin lamented most after the game.
"That was a mistake," Franklin said. "I made a good pitch on Pudge [Rodriguez], and it was a ground ball in the right place. And then that was a mistake to Coste. I tried to bury that, but I was trying to be quick. I didn't have to be quick to home, but for some reason I told myself I had to be quick to home. And I didn't make the pitch."
Jeff Keppinger's pinch-hit single moved Coste to third with no outs but didn't score the finishing run, and Franklin and the Cardinals were still alive. And Franklin still almost sent the game into extra innings, as Michael Bourn flied out and Kaz Matsui hit into a fielder's choice for the second out. Second baseman Joe Thurston thought he might have had a double-play chance on Matsui's ball, but it would have been difficult.
The infield was playing in, and Matsui is speedy. So once Thurston didn't corral the ball perfectly cleanly, he went home for the relatively safe out.
"It looks like we might have had a chance at two," he said. "But when I got it, I kind of bobbled it a little bit. And I wanted to make sure. If we don't turn it, game over. I just wanted to make sure I got the sure out."
Given one more chance, the Astros finally converted. Tejada singled through the hole on the left side on a 2-2 pitch, ending the game.
"In that situation, I just knew I had to help my team here and do a good job," said Tejada, who called the hit his favorite one since he came to Houston.
The late rally meant that in a battle of aces, neither starting pitcher received a decision. Franklin took the loss and his second blown save of the season for the Cardinals, and Jose Valverde picked up the win for pitching a shutout top of the ninth.
Carpenter tossed eight fine innings for the visitors, sometimes finding himself in trouble, but nearly always working his way out of it. He got out of the first inning without a run after the first two Astros hitters singled. In the seventh, Houston amassed four base hits, including a double, but scored only one run. The 2005 Cy Young Award winner is undefeated in four July starts after finishing June by losing three out of four.
"I felt like I could have been a little better, but for the most part, I felt like I pitched well," he said. "Roy pitched well. It was another one of those battles that us and Houston have. Unfortunately, we weren't able to get the outs at the end, but those things happen too. Frankie's done a great job all year. That stuff is going to happen. Unfortunately, it happened tonight."
On the whole, Oswalt was every bit as good as Carpenter. He was certainly more efficient, needing only 79 pitches to get through seven innings. But he permitted a solo homer to Mark DeRosa in the fifth -- his third in two games -- and two key swings by Yadier Molina and Brendan Ryan in the eighth that led to two runs, so he ended up with no decision, as well.
The Cardinals saw their lead in the National League Central dwindle to a single game over the Astros and the Cubs. Milwaukee is in fourth place, two games out.
"There's a lot of season left," Franklin said. "We'll play them again, and I'll do better next time."