ST. LOUIS (AP) — Bud Norris shut down St. Louis for the fourth straight time, Hunter Pence hit a three-run homer after a testy exchange and the Houston Astros wrapped up a three-game sweep of the Cardinals with a 4-1 victory on Thursday.

Houston posted its first sweep in St. Louis since taking a three-game series in April 2004. The Cardinals have lost seven of nine.

Houston's Lance Berkman extended his streak of reaching base to nine in a row with a double and two singles before grounding out.

Norris (2-4) struck out eight and walked none in eight innings. He gave up one run and six hits. Though he's 8-7 with a 5.10 ERA lifetime, Norris is 4-0 with a 0.35 ERA in four career starts against St. Louis.

Norris had lost three straight starts going into Thursday's game, allowing 16 earned runs in 13 2-3 innings. Norris thrived under a different catcher, Humberto Quintero.

The Astros scored all four runs in the third, perhaps taking advantage of Chris Carpenter's temper. Carpenter (4-1) and Carlos Lee had a staredown and then exchanged words after Lee popped out with two runners on base, leading to both benches and bullpens streaming on the field, although nothing got overheated.

Pence was next up with two outs, and he hit his fifth homer to put Houston ahead 4-0. Berkman's RBI single drove in the first run.

Berkman matched a career best by reaching in nine straight plate appearances. He had two homers during the streak, which fell four shy of the franchise record of 13 set by Bill Spiers in 1997.

Matt Holliday's RBI single in the seventh ended Norris' string of 24 innings without allowing an earned run against St. Louis. Albert Pujols ran through third base coach Jose Oquendo's stop sign to score the run.

Matt Lindstrom worked the ninth for his ninth save in nine chances and 21st in a row dating to April 28, 2009.

Carpenter worked eight innings and retired his last 11 hitters, finishing with five strikeouts and three walks.

NOTES: Houston's Felipe Paulino is 0-5 overall and 0-2 with an 18.47 career ERA against the Giants heading into Friday's start in San Francisco. ... Astros manager Brad Mills trotted out a repeat lineup for only the second time this season. Houston has used 32 different lineups, a major league high. ... Holliday had two hits and a walk.