Santana struck out 11 Marlins through 6 2/3 innings, yielding only three hits while walking two before leaving with the Mets down 1-0.
New York tied it up in the bottom of the seventh, loading the bases on three walks and scoring when Duda drew a fourth base-on-balls off Marlins reliever Steve Cishek.
New York grabbed the lead in the eighth when Duda lined a two-out comebacker off Edward Mujica (0-2), scoring Kirk Nieuwenhuis from third.
Former Mets star Jose Reyes went 0-for-4 in his first appearance in New York since leaving the team and signing a big free-agent contract with Miami.
Marlins starter Josh Johnson allowed one run on three hits over 6 2/3 frames.
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'
Beyonce flaunts bikini body, Blue Ivy in vacation pics