Dickey (18-4) gave up both St. Louis runs on eight hits and one walk over 6 2/3 innings. He struck out five.
Three other pitchers, including Washington's Gio Gonzalez who was to pitch Wednesday against the Chicago Cubs, have 17 wins this season.
Josh Thole singled in a run in the second and Lucas Duda walked with the bases loaded in the third before Ike Davis hit a three-run home run in the fifth for the Mets. It was Davis's 26th home run this season.
St. Louis starter Adam Wainwright snapped an 11-inning scoreless string for Dickey with his first home run since 2009 in the third inning and the Cardinals got a run in the seventh off a double play to account for the St. Louis offense.
Wainwright (13-12) was charged with five runs on eight this in five innings. He walked two and struck out five.
The Mets picked up an insurance run in the eighth on an Andres Torres RBI single.
Beyonce flaunts bikini body, Blue Ivy in vacation pics
Couple mistakenly served bag of cash at McDonald's drive-thru