The 36-year-old Fitzgerald, who is second on the NFL's all-time receiving yards and receptions list behind Jerry Rice, will be paid $11 million (9.9 million euros) for the 2020 campaign.
"This season was among the most fun of my career," Fitzgerald wrote on Twitter.
"The future is so bright for this team and I relish the opportunity to build with this talented young nucleus. Arizona is where I started and where I will finish. 2020! Let's get to work!"
Fitzgerald is one of the most respected players in the NFL, earning 11 Pro-Bowl selections as well as the league's prestigious Walter Payton Man of the Year Award in 2016.
He has spent the entirety of his career at the Cardinals after being chosen with the third pick of the draft in 2004.
He scored two touchdowns in Arizona's unsuccessful Super Bowl appearance in 2009, where the Cardinals were beaten 27-23 by the Pittsburgh Steelers.
Arizona head coach Kliff Kingsbury had expressed hope that Fitzgerald would continue at the end of a season which saw him finish with 804 receiving yards from 75 catches.
"I think he's playing as good as anybody, honestly," Kingsbury said. "You watch what he does week in and week out, the little things, the blocking and the toughness that he brings to the offensive side of the football."