It's the second significant move for NY this week.
The veteran first baseman will likely split time at first depending on how much Dominic Smith, a 2013 first-round pick who was a late-season call up in 2017, impresses the Mets.
Gonzalez will be a free agent after the upcoming season.
Atlanta remains on the hook for virtually all of Gonzalez's guaranteed $21.5 million salary in 2018, with the Mets needing to pay only the minimum salary of $545,000.
The Mets won't need to break the bank for Gonzalez. When he returned from his injury, NL Rookie of the Year Cody Bellinger had taken over at first base.
The 35-year-old became a free agent after being dealt from the Dodgers to the Braves in a move meant to free up money, he was later released by Atlanta.
Gonzalez spent the past six seasons with the Los Angeles Dodgers but was limited to only 71 games in 2017 because of a herniated disk in his back that put him on the disabled list for a long stretch.
Gonzalez hit just.242 with three home runs, 30 RBI, and a career-low.642 OPS. He was not part of the team's seven-game World Series run. It was the fewest games of playing time he saw since 2005, when he was a member of the Texas Rangers. He has yet to prove reliable against Major League Baseball pitching, posting a.198 average with nine home runs and 26 RBI in 167 at-bats last season.