Gonzalez can make an additional $1 million in incentive bonuses, according to a baseball source. His agreement is pending a physical exam.
Gonzalez, 40, has 346 homers and 2,502 hits in his 18-year career. He batted .278 with 15 homers and 68 RBIs for the Los Angeles Dodgers last season.
The Marlins plan to use Gonzalez in left field and at first base this season.
While Gonzalez took a substantial pay cut from his $7.5 million salary last season, he's currently the second-highest paid Marlin behind reliever Kevin Gregg -- who just signed a one-year, $2.5 million deal.
Florida also agreed to a one-year contract with infielder Dallas McPherson. A former top prospect in the Angels' system, McPherson
missed the 2007 season after undergoing back surgery a year ago to
remove a herniated disc.
McPherson has a .247 career average with 18 home runs in 117 games over three seasons with the Angels. He was their second-round
draft pick in 2001.
The Marlins cut their payroll significantly when they sent Cabrera and pitcher Dontrelle Willis to Detroit in a trade in December.
Jerry Crasnick covers Major League Baseball for ESPN.com. Information from The Associated Press was used in this report.