HOUSTON -- Jose Vizcaino hit a three-run homer to cap a four-run rally in the eighth inning, and the Houston Astros beat the Cardinals 6-3 Thursday night to stop St. Louis' eight-game winning streak.
Houston, which closed within 5 1/2 games of the NL Central leader, trailed 3-2 in the eighth when Craig Biggio homered off Dave Veres (5-8) leading off.
Jeff Bagwell singled with one out, and Mike Crudale relieved and walked Mark Loretta. Vizcaino followed with his fifth homer of the season.
Octavio Dotel (6-4) pitched a two-hit eighth, and Billy Wagner finished for his 32nd save in 38 chances, stranding a pair of runners when he struck out Tino Martinez to end the game.
Chuck Finley, facing Houston for the first time, allowed two runs and four hits in five innings. He escaped a bases-loaded jam in the fifth when Lance Berkman hit an inning-ending flyout.
Astros starter Carlos Hernandez gave up two runs -- one earned -- six hits and five walks in five innings.
Martinez put St. Louis ahead with an RBI single in the second, but Gregg Zaun hit a two-run double in the bottom half.
Edgar Renteria's RBI double retied it in the third, and Fernandez Vina hit a sacrifice fly in the sixth.
Berkman is 0-for-6 with the bases loaded and two outs this season. ... Houston's Jason Lane had his first major league triple in the fifth inning, two days after he had his first major league home run against Colorado.