Allen Craig knocked in the eventual deciding run in the eighth inning and Adam Wainwright tossed seven scoreless innings to become the first 10-game winner in the majors, as St. Louis emerged with a 2-1 win over the New York Mets in the rubber match of a three-game series.
"My whole routine was thrown off today," Wainwright said, expecting that ominous skies and a dire forecast of up to three inches of rain might push back first pitch. "I had everybody in the world tell me I had never beat the Mets in their stadium so it was something I wanted to do.
The 31-year-old had been 0-4 with an 8.46 ERA in four previous starts in Queens.
Wainwright (10-3) allowed just four hits and two walks while fanning six to record his fifth straight victory, but Edward Mujica made things interesting in the ninth before picking up his 19th save of the season.
Matt Carpenter's RBI triple accounted for the other run as the Cardinals won for the fifth time in their last seven.
Marlon Byrd's ninth-inning solo shot was all the offense for the Mets, while Matt Harvey (5-1) was the hard-luck loser after giving up a run on five hits with seven strikeouts over his seven-inning outing.
"If I had just gotten seven zeroes, we're still in this game," Harvey said. "You really have to be locked in through this lineup."
Harvey exited following a scoreless seventh, but the visitors posted an insurance run in the eighth off Scott Rice.
Carpenter singled but was erased trying to steal second, while Carlos Beltran, Matt Holliday and Craig slugged three straight base hits to make it 2-0.
Trevor Rosenthal turned in a scoreless home eighth, but Byrd's long blast to left center with one out pulled the Mets within a run and John Buck followed with a double. Kirk Nieuwenhuis' grounder moved Buck to third, but pinch- hitter Josh Satin struck out to end the game.
The Cards picked up a run in the third, as Pete Kozma singled with one out, was sacrificed to second by Wainwright and scored on Carpenter's triple to the gap in right center.
"You could foresee this being a one-run game, just with the way the weather was and with two guys with high-caliber stuff going against each other," Carpenter said. "It was nice knowing that if we could just get one, we had a chance."
Wainwright retired the first 11 batters he faced. New York threatened in the fourth with two on and two outs, but Lucas Duda flied out, and in the seventh, the hosts put two on with two down and failed to score after pinch-hitter Justin Turner grounded to third.
Wainwright has worked at least seven full frames in 11 of his 14 starts this season ... He recorded his 1,000th career strikeout in the first inning, getting David Wright on a called third strike ... St. Louis upped its major- league best road record to 24-11 ... Prior to the game, the Mets announced that manager Terry Collins has been named to the NL All-Star coaching staff.