Updated

Bud Norris won his fourth game this season and third against the St. Louis Cardinals, and the Houston Astros got career-highs of six RBIs and four hits from rookie Angel Sanchez, stretching their winning streak to seven with an 18-4 rout on Tuesday night.

Colby Rasmus and Matt Holliday homered for the Cardinals, who will try to avoid getting swept by Houston for the second time at home this season behind 11-game winner Chris Carpenter on Wednesday night. The Astros have won five straight in St. Louis, and have outscored the opposition 57-12 during their longest winning streak since an eight-gamer from Aug. 27-Sept. 3, 2008.

Houston had a five-run second against rookie Jaime Garcia (9-5) and scored four in the sixth, seventh and eighth against the St. Louis bullpen.

Chris Johnson had two hits and three RBIs and Pedro Feliz had three hits and two RBIs for the Astros, who were 13 for 19 with runners in scoring position. They missed the franchise record for runs by one and had a season-best 22 hits.

Garcia, who leads NL rookies with nine victories, gave up eight runs and 10 hits in five innings. He missed his first shot at becoming the team's first rookie to reach double figures in victories since 2002, although only one run in the Astros' five-run second was earned.

Norris (4-7) is 5-1 with a 2.27 ERA in six career starts against the Cardinals and had allowed only one run in 20 innings his first three career appearances in St. Louis, all victories. He lost to the Cardinals last month in Houston and was not nearly as dominant this time either, allowing four runs in six innings to hike his Busch Stadium ERA to 1.73.

Sanchez, acquired from Boston on July 1, had a two-run double in the second and a three-run triple in the sixth. He missed two chances for the cycle and a first career homer, hitting an RBI single in the seventh but taking a called third strike with the bases loaded in the eighth. Sanchez entered the game with eight RBIs in 83 at-bats and easily topped his previous best of two RBIs on July 31 against the Brewers.

Rasmus hit his 18th homer with one out in the first.

Allen Craig and Skip Schumaker had RBI singles in the fourth to cut the Astros' lead to 6-3, with Albert Pujols running through third base coach Jose Oquendo's stop sign on Schumaker's hit and then scoring standing up on a wide throw to the plate by right fielder Hunter Pence.

But the Astros pounced on relievers Mitchell Boggs, Dennys Reyes and Mike MacDougal for 11 hits and 10 runs over the next three innings. Aaron Miles, who started at shortstop, pitched the ninth and allowed a hit.

NOTES: Holliday hit his 21st homer and second in three days in the sixth. ... Before the game, the Astros activated IF Geoff Blum off the DL and designated IF Anderson Hernandez for assignment. Blum (elbow surgery) was 2 for 9 with two doubles and an RBI in three rehab appearances for Double-A Corpus Christi. Blum was 2 for 2 including a pinch-single in the eighth and finished the game at 3B. ... Devon Alexander of St. Louis, the WBC and IBF junior welterweight boxing champion, threw out the first pitch. Alexander will fight former titleholder Andreas Kotelnik Saturday in St. Louis. ... The Astros have scored 19 runs twice, the last time in 1999 against the Pirates.