Gordon's new deal covers three years of arbitration and two years of free agency. The vesting option would extend the deal into what would be Gordon's third year of free agency.
Gordon was one of Miami's eight arbitration eligible players before agreeing to the deal. The Marlins have reportedly been negotiating an extension with Gordon's agent since the Winter Meetings last month.
Miami was thought to be interested in giving Gordon a five-year deal, but multiple reports indicated Gordon was hoping for a seven-year contract.
The deal comes at a notable time, as Friday is the arbitration salary exchange deadline. Players first filed for arbitration Tuesday.
Miami acquired Gordon from the Dodgers last off-season and he thrived with the Marlins in 2015, winning the National League batting title and Gold Glove at second base.
Over 145 games, Gordon batted .333/.359/.418 to complement four home runs and 46 RBIs. Gordon also stole 58 bases, more than the entire Marlins team stole in 2014.
The Marlins have lacked stability at second base over the last few seasons but now have a long-term second base option in Gordon. Donovan Solano and Derek Dietrich were among the options the Marlins considered before trading for Gordon.
Although he did not have a notable amount of success early in his career, Gordon proved he can produce regularly with the Dodgers in 2014. Over 148 contests that year, Gordon batted .289/.326/.378 in addition to hitting two home runs and driving in 34. He also stole 64 bases.
Gordon earned $2.5 million as a Super Two player last season, but MLB Trade Rumors projected he would earn close to $5.9 million in 2016. MLBTR also projected his other arbitration seasons would be worth between $25-27 million. The Marlins will temporarily be paying Gordon more before the deal becomes more valuable for the club over the next few seasons.
Gordon joins Giancarlo Stanton and Christian Yelich as Marlins who have received extensions recently. Adeiny Hechavarria and Jose Fernandez could be extended in the coming months.