Terms of the deal weren't announced, but the New York Post reported the ex-Yankees slugger was paid a total of $60 million.
Granderson, 32, smacked 84 homers with 225 RBI during two seasons with the Yanks from 2011-12. Last season, however, he appeared in just 61 games due to a series of injuries, batting .229 with seven home runs.
The three-time All-Star sports a .261 average with 217 homers and 606 RBI over his career with the Yankees and Detroit Tigers.
"We are excited to add Curtis' power to the middle of the lineup," Mets General Manager Sandy Alderson said. "He is a dynamic offensive player who has had success in New York."