The deal is worth $19.875 million, a source with knowledge of the deal told ESPN The Magazine's E.J. Hradek, with a breakdown of: $3.1 million this season; $3.675 million in 2011-12; $3.775 million in 2012-13; $3.875 million in 2013-14; and $5.45 million in the final year.
The annual salary cap hit will be $3.975 million, and the contract does not contain a no-trade or no-move clause.
Staal, 23, was a restricted free agent. He was one of four Rangers to play in all 82 games last season, scoring four goals, 19 assists for 27 points, all career highs.
He has played in 202 consecutive games, including the playoffs, dating to Feb. 19, 2008. He led the team last season with an average of 23 minutes, 7 seconds of ice time per game, and twice logged at least 30 minutes.
Information from The Associated Press was used in this report.