The deal will pay MacArthur $3.25 million a season.
The 26-year-old signed with the Leafs last August after the Atlanta Thrashers walked away from a $2.4-million arbitration ruling. The left-winger ended up taking $1.4 million to sign in Toronto.
MacArthur set career highs in goals (21), assists (41) and points (62) in 2010-11 with the Leafs.
The Lloydminster, Alta., native has played in 290 career NHL games with Toronto, Atlanta and Buffalo, registering 65 goals and 85 assists.