Ludwick finished 2-for-3 and extended his career-best hitting streak to 15 games, including the last 11 of 2008.
Chris Duncan and Yadier Molina also drove in runs for the Cardinals, while Joel Pineiro (1-0) allowed two runs and eight hits over 6 2-3 innings to earn the win.
Kyle McClellan got the final two outs for his second career save in relief of rookie Jason Motte, who struggled again by giving up two hits to three batters to start the ninth.
Carlos Lee went 3-for-4 with a solo home run for Houston. Lance Berkman added an RBI double and Kazuo Matsui a bases-loaded walk to account for the Astros' runs.
Mike Hampton (0-1), who made his first regular-season appearance as an Astro since he beat Los Angeles 9-4 on Oct. 3, 1999, gave up three runs on four hits and four walks in five innings.
The Cardinals got to Hampton right away, with Schumaker hitting a leadoff infield single. Hampton then retired Khalil Greene and Albert Pujols, but Ludwick walked to keep the inning alive and Duncan hit a run-scoring single to right.
Some erratic pitching cost Hampton two more runs in the third when he hit Greene to start the inning and then walked Pujols. Greene later came home on Ludwick's RBI double to right that sent Pujols to third, and Molina hit an RBI fielder's choice back to the pitcher.