The deal came three days before the Giants' season opener against the San Francisco 49ers and just six months after an angry Strahan declared that this would be his final season with the team after a proposed $56 million deal fell apart.
"I am very happy I will be in New York and that I am going to stay here," Strahan said at a hastily called news conference. "I feel great to know this is where I started my career and this is where I will finish my career."
Strahan, 30, will receive a $6.4 million signing bonus. A total of $20.9 million of the contract will be guaranteed over the next three seasons.
The four-time Pro Bowl selection enters the season fifth among active players with 84.5 sacks, including 9.5 in 2000 when the Giants played in the Super Bowl.
This contract will free $1.25 million in cap space this year, and it won't tie up cap space in the future because the guaranteed money can be prorated over the life of the contract.
Strahan will count only $4.2 million against the salary cap next year. He will count $10.9 million against the cap this year.
He will receive a $6.4 million signing bonus. A total of $20.9 million of the contract will be guaranteed over the next three seasons, including $5.5 million in salary this year.
According to FOX Sports, Strahan can't sign the contract until the NFL Management Council approves some language in the deal and insurance clauses.