Faulk, 22, was set to be a restricted free agent this summer. The new contract will run through the 2019-20 season and be worth $29 million US overall, for an average cap hit of $4.833 million per season.
The St. Paul, Minn., native has three goals and 21 assists in 65 games so far this season, taking on a larger role in the absence of injured veteran Joni Pitkanen.
"Justin has proven to be among the best young defensemen in the league, as confirmed by his selection to the U.S. Olympic team,” Hurricanes general manager Jim Rutherford said in a statement. "He has been and will continue to be the anchor of the Hurricanes’ defence for years to come."
The Hurricanes drafted Faulk in the second round in 2010, and he went on to play one season at the University of Minnesota-Duluth before turning pro.
He's scored 16 goals and 45 assists in 169 games with Carolina.