The deal was earlier reported by Yahoo! Sports.
Seager, 27, set career highs in batting average (.268), home runs (25) and RBIs (96) last season, his fourth with the Mariners.
In 2014, Seager made his first All-Star team and won a Gold Glove Award, also a first in his career.
Seager was eligible for salary arbitration and would have been eligible for free agency after the 2017 season. He made $540,000 last season.
Seattle said it was committed to raising the payroll after the team won 87 games and finished one game back for the AL's second wild card.
Unlike his first two seasons when there was little protection around him, Seager was no longer asked to be the anchor of Seattle's batting order. Having Cano in the lineup led to Seager getting better pitches and more opportunities to drive in runs.
It didn't start that way in 2014. Seager was mired in a significant slump for the first three weeks, turning his struggles around when he hit a winning, ninth-inning homer against Houston on April 23 that stopped Seattle's eight-game losing streak. Seager was hitting .156 entering that game. Over his next 73 games leading into the All-Star break, Seager hit .307 with 15 homers and 61 RBIs.
But even when he struggled at the plate, Seager continued to thrive in the field. He made just eight errors in 422 chances, and his .981 fielding percentage was the best among big league third basemen.
The Associated Press contributed to this report.