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.