Duda's one-year, $6,725,000 deal means the 29-year-old will get a healthy pay hike after he earned $4.2 million last season.
Duda hit .244 with 27 home runs and 73 RBIs in 2015.
The agreement was $75,000 above the midpoint between the $7.4 million he had asked for in arbitration and the $5.9 million the Mets offered, according to multiple reports.
The Mets also avoided arbitration with suspended closer Jenrry Mejia.
Mejia was suspended for 80 games on April 11 after testing positive for Stanozolol. He then was banned for another 162 games on July 28 after a positive test for Stanozolol and Boldenone.
Mejia had asked for $2,595,000 and was offered $2,345,000. The two sides settled for $2.47 million.