Dickey (17-4) is tied with Cincinnati's Johnny Cueto and Washington's Gio Gonzalez for the major league lead in wins.
Dickey struck out seven and walked three in his NL-leading fifth complete game. The knuckleballer has three shutouts this year and six in his career.
He was especially tough on his fellow All-Star, former teammate Jose Reyes.
Dickey struck out a swinging Reyes with runners on first and second to end the third inning. Dickey picked off the speedy Reyes at first to finish the sixth.
The Marlins put runners at first and second in the eighth, but Reyes grounded out and Carlos Lee flied out.
The game took just 2 hours, 7 minutes.
Davis hit his 25th homer, a two-run shot off Nathan Eovaldi (4-10) in the seventh inning. Davis also had a sacrifice fly in the fourth.
Eovaldi (4-10) allowed three runs and four hits in seven innings. He walked one and struck out one.
The Mets won despite getting just four hits. The loss dropped the last-place Marlins three games behind fourth-place New York in the NL East.
Ruben Tejada and Daniel Murphy opened the Mets fourth with singles, putting runners on first and third. After David Wright lined out, Davis hit a sacrifice fly to center field.
Wright led off the seventh with a single and Davis
NOTES: The series continues Saturday night when Mets RHP Jeremy Hefner (2-5, 4.65 ERA) opposes Marlins RHP Josh Johnson (7-11, 4.00). ... The Mets announced a four-year extension with Double-A affiliate Binghamton of the Eastern League.