The deal has an average annual value of $5.9 million. Karlsson could have become a restricted free agent July 1.
The 26-year-old Karlsson had 24 goals and 32 assists in 82 games last season. He also had two goals and three assists in seven playoff appearances.
Karlsson was selected by Anaheim in the second round of the 2011 draft. The Ducks traded him to Columbus in 2015.
But Karlsson's career took off after Vegas grabbed him in its expansion draft. He set career highs with 43 goals and 35 assists in Vegas' inaugural season, helping the Golden Knights make it to the Stanley Cup Final.
Karlsson is the only player to appear in every game in Vegas' first two seasons.
The Golden Knights announced Karlsson's deal on Monday.
More AP NHL: https://apnews.com/NHL and https://twitter.com/AP-Sports