Colon was tagged for six runs on 10 hits in 2 1/3 innings of work before being pulled, and that was enough for San Diego to top the Mets.
Alex Torres, Bobby Parnell, Sean Gilmartin, and Hansel Robles combined to allow one run in 6 2/3 innings in relief of Colon.
Duda became the second Met ever to hit three home runs during a home game. Earlier this season, Kirk Nieuwenhuis was the first Mets player to accomplish the feat.
During the game, it was reported that the Mets had acquired Carlos Gomez from the Brewers in exchange for Zack Wheeler and Wilmer Flores. Flores remained in the game after the news broke, and was seen crying on the field during the eighth inning.
The Mets wrap up their three-game series against the Padres on Wednesday afternoon at Citi Field at 12:10 p.m. Jon Niese (5-9, 3.75 ERA) gets the start for the Mets. He'll be opposed by Andrew Cashner (4-10, 3.93 ERA) for San Diego.