The Sharks announced a three-year deal with Karlsson and two-year contract for Donskoi on Friday. Both forwards could have been restricted free agents this summer.
The 26-year-old Karlsson had 11 goals and 11 assists in 67 games last season. He ranked third among forwards in penalty kill time and filled in on the top line at times when needed because of injuries.
The 25-year-old Donskoi had just six goals and 11 assists in 61 games last season when he was slowed by shoulder injuries. It was a drop off from a strong rookie campaign when Donskoi had 11 goals and 25 assists and scored the game-winning overtime goal in Game 3 of the Stanley Cup Final.