Bruce, 30, is a .249 career hitter with 277 home runs over 10 seasons with the Cincinnati Reds, Mets and Cleveland Indians. He had received interest from the San Francisco Giants on the free-agent market before electing to return to New York.
The Mets initially acquired Bruce from Cincinnati for second baseman Dilson Herrera and pitcher Max Wotell in August 2016, then traded him to Cleveland for minor league pitcher Ryder Ryan during the stretch drive last summer.
Bruce's deal is the second highest for a free-agent position player this offseason -- trailing only first baseman Carlos Santana's three-year, guaranteed $60 million contract with the Philadelphia Phillies in December.
Conforto hit 27 home runs last season and made his first career All-Star team before suffering a dislocated shoulder in August and undergoing surgery to repair a torn posterior capsule. Although the Mets have said his rehab is going well, it's questionable whether he'll be ready by Opening Day.
Juan Lagares and Brandon Nimmo are New York's other center-field options. Bruce, who has logged 13 career starts at first base, is capable of spending time at the position if prospect Dominic Smith struggles in his second season. Smith hit .198 with nine homers in 49 games with New York in August and September.
Bruce joins Leonys Martin of the Tigers as the second free-agent outfielder to sign a major league contract this winter. His $39 million deal with the Mets marks the second biggest guaranteed payout for any position player this offseason. Santana's three-year, $60 million deal with the Phillies is the largest.