Wainwright struck out six and walked none. He issued one walk in his 22 1/3 spring innings.
For the second straight start, Wainwright outdueled Nationals right-hander Gio Gonzalez, who allowed three runs (one earned) on seven hits in five innings. After a passed ball advanced runners to second and third in the first, Gonzalez allowed a two-run, two-out single to Molina.
Molina padded the St. Louis lead with an RBI single in the third, an inning that was extended by an error. Molina entered the day with three RBIs in his first 19 games played this spring.
The five-inning start was the longest of the spring for Gonzalez, who allowed a combined eight runs (five earned) on 18 hits in 18 innings.
The Cardinals used Wednesday's game to get their first look at right-hander David Aardsma, the latest reliever to enter the bullpen competition. Aardsma, who signed a Minor League contract with the Cardinals after being released by Cleveland on Friday, stranded two runners while pitching a scoreless sixth.
Caleb Ramsey hit a two-run single in the eighth for the Nationals.
"They're a good club," Cardinals manager Mike Matheny said of the Nationals. "They made quite a charge last year, and we're no strangers to how talented they are. I think everybody likes to use the descriptive of being an 'athletic team,' but they are. They're strong and fast and have guys all over the field who make plays. They're going to be a team to be watched."
Bryce Harper was ejected in the fourth inning for arguing a close play at first base.
Up next: The Nationals play their last Grapefruit League game on Thursday against the Mets in Port St. Lucie, Fla., at 12:10 p.m. ET on MLB.TV. Right-hander Jordan Zimmermann will make his final start of the spring. In four starts, he has allowed one run in 13 innings.
Jenifer Langosch is a reporter for MLB.com. Read her blog, By Gosh, It's Langosch, and follow her on Twitter @LangoschMLB. This story was not subject to the approval of Major League Baseball or its clubs.