HOUSTON -- An often unjust game delivered a little belated karmic payoff on Tuesday night.

Anthony Reyes, who deserved better than his grisly 2-14 record in 2007, pitched brilliantly and earned his first career relief win as the Cardinals beat the Astros, 5-3, at Minute Maid Park. Reyes worked three shutout innings, entering a game the Cards trailed and leaving with a two-run lead.

Bounced to the bullpen despite an excellent Spring Training, Reyes made the most of his new gig on Tuesday. He retired the first eight batters he faced before Hunter Pence hit a two-out triple in the seventh, but escaped the frame with a Lance Berkman groundout.

In the next half-inning, Troy Glaus' two-run double gave Reyes a lead, and Ryan Franklin and Jason Isringhausen got the last six outs.

"We don't have a chance without Anthony," manager Tony La Russa said. "That was very high quality. He was really pumping it, making pitches. Rewarded with a W, that's sweet."

Reyes spent Spring Training rebuilding himself as a pitcher, regaining the stuff and command that once made him the Cardinals' top prospect. His efforts on Tuesday showed just how far he's come.

He consistently hit 93 mph on the radar gun and even showed several 94s. Mix that with the fact that 26 of Reyes' 38 pitches were strikes, and you get a fine outing.

"Compared to last year, when I was throwing the ball all over the place, now I feel like I have a little better idea of where the ball is going," Reyes said. "I'm able to put more on the ball and not lose control of it."

Even so, without some big hits and a defensive misplay by Miguel Tejada, Reyes would again have been denied a victory.

After Chris Duncan drew a one-out walk in the eighth, Albert Pujols hit a grounder up the middle. Tejada appeared to have a chance for at least a force play at second base, but he could never secure the ball and both runners were safe.

Rick Ankiel struck out for the second out, but Glaus drove a breaking ball from Geoff Geary to the opposite field, giving St. Louis the lead for the second time in the game. Glaus has two doubles, a single, a walk and three RBIs in the first two games of the series.

"It was down, a strike, but it was down," Glaus said of the first-pitch curveball he hit. "I just stayed on it and didn't foul it off. Three or four days ago, it might have been a roller past [third-base coach Jose] Oquendo. Today it was a better swing and a better result."

That capped a comeback for the Cards, who had trailed, 3-2, when starter Brad Thompson left the game. Thompson allowed three runs in four innings, but three of his frames were just fine. Thompson was done in by an ugly third.

After retiring the first two batters with a 2-0 lead, Thompson allowed a double to Lance Berkman, then walked Carlos Lee. Miguel Tejada drove in two runs with a double of his own, taking third on the throw home and scoring on a wild pitch. Thompson allowed only an infield hit in the fourth, but having thrown 87 pitches, he was removed for a pinch-hitter in the top of the fifth.

"I was getting behind a lot of guys, and that was causing longer counts," Thompson said. "So I got my pitch count up there quick, which is something that's going to hurt me."

The Cardinals, meanwhile, used a more bit-by-bit approach against Astros starter Shawn Chacon. Thompson's bases-loaded sacrifice bunt got them on the board in the second. Skip Schumaker tripled in the third for his first base hit of the season, and Duncan's sac fly scored Schumaker to make it 2-0. After St. Louis fell behind, 3-2, Adam Kennedy's RBI single in the sixth tied the game.

The win puts the Cardinals at 6-2 on the season, a half-game behind first-place Milwaukee in the National League Central.