Lupul, 29, is coming off a breakout season in 2011-12, in which he scored 25 goals and added 42 assists for 67 points, all career highs.
Terms of the deal weren't revealed, but The (Toronto) Globe and Mail reported its is worth $26.3 million and includes a limited no-trade clause.
He was named an alternate captain of the squad last week.
"[Lupul] has proven to be a dynamic offensive player and since joining our hockey club he has fit in extremely well with our team," Leafs General Manager Dave Nonis said. "His alternate captaincy is well deserved and, by signing this extension, we look forward to him playing a large role with the Leafs for many years to come."
The eighth-year player has amassed 151 goals and 172 assists over 516 games for Anaheim, Edmonton, Philadelphia and the Maple Leafs.