Springer (2-1) pitched for the Astros from 2004-06.
Doug Brocail (6-5) pitched a scoreless ninth in relief to earn the win. The Cardinals wasted a stellar start from Kyle Lohse, who allowed two runs on seven hits in eight strong innings.
David Newhan hit a two-run homer off Lohse in the seventh after Lohse had stifled the Astros most of the night. Lohse lost for the first time in four starts against Houston this season.
Astros starter Randy Wolf matched Lohse for six innings, allowing one earned run and three hits.
Neither starter allowed a hit through the first three innings.
With two outs in the fourth, Wolf mishandled Ryan Ludwick's slow roller to the left of the mound and when he finally picked it up, he overthrew Berkman at first base. Ludwick went to second and Wolf was charged with two errors on the play.
Wolf walked Troy Glaus before Yadier Molina blooped an RBI double down the right-field line to make it 1-0.
Darin Erstad led off the Houston fourth with the Astros' first hit, a single to center. The Astros announced during the game that Erstad had signed a one-year, $1.75 million contract extension. But Ty Wigginton grounded into a fielder's choice and then was caught stealing after Miguel Tejada struck out, ending another easy inning for Lohse.
Nick Stavinoha led off the sixth with a double down the right-field line. He advanced on Albert Pujols' groundout and scored on Ludwick's broken-bat flyout to put the Cardinals up 2-0.
Wolf got out of the sixth, but Chris Sampson relieved him for the seventh and set down the Cardinals in order.