The agreement between the Mets and Bruce became official Tuesday night when the club announced it has brought back the slugger for three years and $39 million.
Bruce will receive a signing bonus of $3 million. He'll earn $10 million in 2018 and $13 million in each of the last two seasons of the deal.
"I'm excited to return to the Mets to help finish what we set out to do at the beginning of last season and return to the postseason for the best fans in baseball," Bruce said. "We have a terrific group of guys in place and I'm excited to get back to work."
Bruce reportedly can choose five teams annually to which he can block a trade during the life of his contract.
The Mets and Bruce had been connected all offseason, but the signing that reportedly took place on Jan. 10 caught many by surprise.
The 30-year-old hit .254/.324/508 with a career-high 36 homers and 101 RBIs with the Mets and Indians last season. New York dealt Bruce to Cleveland on Aug. 9 for minor league reliever Ryder Ryan.
"Jay has proven to be a leader both on and off the field while continuing to produce at a high level throughout his major league career," Mets general manager Sandy Alderson said. "We're glad to have Jay back in the fold as we continue our pursuit to return to the postseason."
New York will hold a press conference to announce the signing on Wednesday at 11 a.m. from Citi Field.