No financial terms were disclosed, but The Orange County Register reported it was for $4 million per season, for a total of $20 million.
The 20-year-old -- the Ducks' first-round pick in the 2010 NHL draft -- was slated to become a restricted free agent after the upcoming season.
"We're excited to sign Cam to a long-term contract," Anaheim General Manager Bob Murray said. "He's a character kid with a great chance to become an elite NHL defenseman."
Fowler has collected 15 goals and 69 points over two season in Anaheim.
Kate Middleton recycles dress at movie premiere
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'