Miguel Tejada had an RBI triple and Lance Berkman's sacrifice fly for the second out tied it before Lee hammered a first-pitch fastball well over the left-field wall, a drive estimated at 396 feet, for his fifth homer. Isringhausen (1-2) has nine saves in 11 chances but has taken the loss in two of his last three outings.
Wesley Wright (3-0) had two strikeouts and a walk in the eighth. The Cardinals had a runner on third with one out in the bottom of the ninth before Jose Valverde finished for his fourth save in seven chances.
Braden Looper worked seven innings of two-hit ball for St. Louis. Houston's Shawn Chacon survived early wildness that led to both of the Cardinals' runs in the first, allowing one earned run on five hits in seven innings with a season-high six walks.
The winning streak is the Astros' longest since Sept. 20-28, 2006, when they won nine straight. The start of the game was delayed for two hours by heavy rain and played in 54-degree chill.
Adam Kennedy's bases-loaded, two-out infield hit in the first combined with third baseman Geoff Blum's throwing error was the only play that created runs before the ninth. Albert Pujols had an infield hit and walked twice and has reached base in all 24 games for the Cardinals.
Looper retired 16 consecutive batters after allowing a one-out double to Darin Erstad in the first, with Kaz Matsui's two-out single in the sixth ending the run.
Chacon got himself in trouble in the first, walking three of the first four hitters. He retired Pujols, the No. 3 hitter, on a popup, and caught fifth-place hitter Troy Glaus on a called third strike before Kennedy's dribbler between third and short combined with third baseman Blum's wild, backhand toss gave the Cardinals a 2-0 lead.