"Every time out, for the most part, I've felt more comfortable on the mound and felt like I have been able to make adjustments on the fly," Wainwright said. "As you go into a season, that's what you want."
Facing the Cardinals for the second straight outing, Marlins right-hander Carlos Zambrano had to battle for 4 1/3 innings, giving up two runs on five hits with four walks. He struck out one.
Miami's sole run came courtesy of Jose Reyes' homer, his first of the spring, off Kyle McClellan.
Zambrano, who struck out seven Cardinals in his previous appearance, built up to 82 pitches.
Zambrano yielded doubles in each of the first three innings. The Cardinals made him pay in the second, scoring twice on two hits.
Matt Carpenter doubled to open the second, and Koyie Hill walked. A double steal moved both into scoring position, then Alex Cora floated an RBI single to center. St. Louis manufactured its second run when Hill raced home on Cora's attempted steal of second.
Lance Berkman had two doubles for the Cardinals.
The Marlins last won on March 15, against the Mets. Since then there have been six losses and two ties, and they've scored 17 runs in the stretch.
The team has been without regulars Giancarlo Stanton and Logan Morrison, as well as the veteran Greg Dobbs.
"You have three guys out of the lineup that should be," manager Ozzie Guillen said. "That's kind of hard. In the meanwhile, we're going to hit. We're going to be fine. I am not worried about that. We're playing good baseball. We're pitching well.
"I'm happy. When I'm not happy, I'll let you guys know. I'll let them know, too. That's easy for me."
Up next: Two of the next three Cardinals' games will come against the Mets, beginning with a 12:10 p.m. CT contest at the Mets' spring home in Port St. Lucie, Fla., on Saturday. The start belongs to Lance Lynn, who has made two since being added to the rotation in place of Chris Carpenter. Lynn became the first Cardinals pitcher to throw five innings in a spring start when he did so last Monday.