"I'm right where I need to be. I think I walked more today than I had all spring," said Wainwright, who brought his spring walk total to five. "Today I wanted to work on everything. I threw a lot of changeups, worked on my fastball up in the zone, worked on it a couple times up in the zone when I wasn't trying to. And I threw some good breaking balls."
The Cardinals took a 1-0 lead on Wainwright's RBI single in the second off Mets starter Jeremy Hefner that scored Pete Kozma, who was 2-for-3. David Freese's solo homer in the fourth made it 2-0.
Hefner was otherwise solid, striking out four over five innings with three walks. It was not until the eighth inning, facing Mets reliever Brandon Lyon, that Allen Craig singled home Matt Holliday to reclaim the lead for St. Louis.
With Johan Santana battling shoulder weakness and still not close to appearing in a game, Hefner will begin the regular season in the starting rotation. That will give him a measure of stability he lacked last year, when many of Hefner's 13 starts came on either short rest or short notice.
As long as Santana remains sidelined, Hefner will start every fifth game.
Seth Maness, Maikel Cleto, Fernando Salas and Jason Motte combined for 4 1/3 innings of scoreless relief for the Cardinals. Cleto got the win and Motte the save.
Up next: Jaime Garcia will make his fifth start of the spring on Friday when the Cardinals travel to Kissimmee for their last spring meeting against the Astros at 12:05 p.m. CT. He will be opposed by Bud Norris. Garcia, who has a 3.00 spring ERA, has pitched five innings in each of his last two starts. The game is available live on Gameday Audio.
Anthony DiComo is a reporter for MLB.com. Follow him on Twitter @AnthonyDicomo. This story was not subject to the approval of Major League Baseball or its clubs.