Wainwright picked up his National League-tying 12th win with seven scoreless innings and Matt Holliday hit his team-high 13th home run to lead the Cardinals to a 9-5 win over the Astros on Tuesday night.
Matt Carpenter had three hits and drove in three runs for St. Louis, which has won four in a row and five of six.
Houston dropped its ninth in the last 11 and leads the majors with 58 losses.
Wainwright (12-5) improved to 13-1 in 15 career starts against Houston. His 1.56 ERA against the Astros is his lowest for any opponent.
"It's just one of those weird things," he said. "I've matched up well with them over the years. I think my first real quality game as a starter in 2007 came against them."
Wainwright won three successive starts against Houston at the beginning of the 2007 campaign. He allowed just four runs over 20 innings in beginning his personal run against the Astros.
He allowed five hits, struck out nine and walked one on Tuesday. The right-hander, who will make his second All-Star appearance next week, has won seven successive starts against his former NL Central rival. His lone loss to the Astros was a 2-0 setback on Aug. 2, 2009.
Wainwright, who is tied with Washington's Jordan Zimmermann (12-3) for most wins in the NL, was in complete control. He retired the first five batters and never looked back.
"It's never easy against a big-league squad, but I felt I stayed out of trouble for the most part," Wainwright said.
St. Louis manager Mike Matheny agreed.
"He just came out and established his breaking ball," Matheny said. "He used different speeds and moved in-and-out with his fastball. Just terrific."
The Cardinals, who jumped out to a 7-0 lead, battered former nemesis Bud Norris (6-8) for seven runs and 11 hits in five innings. Norris entered the game with an 8-5 mark and a 2.74 ERA against St. Louis.
Norris won his first four starts against the Cardinals allowing just one run over 26 innings.
"I've been throwing the ball pretty well, but today wasn't my day," Norris said. "I made some good pitches, I made some bad pitches. That's a good ballclub over there. They know what they're doing."
Holliday slammed Norris' seventh pitch of the game over the left-field wall for a 2-0 lead. Carpenter highlighted a three-run rally in the fourth with a two-run double.
Allen Craig added run-scoring hits in the sixth and eighth. He is second in the NL with 71 RBIs.
"This was a full offensive game from top to bottom all the way through the lineup," Carpenter said. "It was impressive."
St. Louis reliever Kevin Siegrist pitched a scoreless eighth inning. He has not allowed a run over the first 12 appearances of his career, a franchise record.
"We forced their closer into a game in which the ninth inning started with us down 9-1," he said. "That's a tribute to the guys in this room. They're not going to quit. They are going to battle until the end."
St. Louis right-hander Shelby Miller (9-6, 2.80) will face Jordan Lyles (4-3, 3.87) in the finale of the two-game series on Wednesday. ... The Astros are 8-8 in interleague play this season. ... Houston INF Ronny Cedeno left the game in the fifth inning after fouling a pitch off his left big toe. He is listed as day to day with a contusion. ... St. Louis C Yadier Molina returned to the lineup after missing the last two games with right knee inflammation. ... Molina and Houston catcher Jason Castro were each hit by pitches. Norris hit Molina in the fifth. Wainwright plunked Castro in the sixth, prompting home plate umpire Mark Wegner to warn both benches. ... Craig has hit safely in his last nine games.