Major League Baseball free agency had hit a stand still since the winter meetings, with few signings or trades taking place.
Bruce, who turns 31 on April 3, has slugged 30-plus home runs in five of the past seven seasons.
Bruce's contract is the largest paid out to a free agent outfielder thus far this offseason, but J.D. Martinez and Lorenzo Cain are both expected to command more significant contracts.
The Mets signed reliever Anthony Swarzak to a two-year, $14-million deal in December, but it was unclear whether they would open their wallet any more. All while reducing a payroll that hit $155 million last season.
After a frustrating offseason where it looked like the Mets front office wouldn't make the moves the fan base was craving, it appears that the patience of Sandy Alderson once again prevailed as the Mets get a bona-fide slugger that they know can handle the pressures of NY. All four of the players projected as this winter's top free agents - Yu Darvish, Jake Arrieta, Eric Hosmer and Martinez - remained unsigned as of Wednesday night.
That is certainly what the Mets seemingly got with this deal with Bruce. The average annual value of Bruce's deal is $13 million, which would have swallowed up almost the entire pool of money the Giants have left to add to their payroll this offseason. After falling out of playoff contention, NY traded him to the AL Central champions on August 9 for minor league pitcher Ryder Ryan.
After the trade, Bruce hit.248 with 7 HR and 26 RBI in 43 regular season games.
Bruce spent a little more than year with the Mets after coming over in a trade from the Reds at the trade deadline in 2016.