McCabe will earn more than $25 million over the life of the contract, the Toronto Star and The Canadian Press both reported Wednesday on their Web sites. He was scheduled to become a free agent July 1.
McCabe, who played with Canada in the Torino Olympics, also reportedly will receive a no-trade clause.
The 30-year-old McCabe recorded 19 goals and 49 assists in 73 games for the Maple Leafs. He finished third overall in scoring among NHL defensemen.