General manager Doug Wilson announced the deal Thursday, just over a week before the start of the free agency season.
Setoguchi got paid $1.8 million last season and said he wanted to stay in San Jose. The feeling was mutual and the Sharks were able to work out the deal early.
Setoguchi had 22 goals and 19 assists in the regular season last season. He added seven goals and three assists in the playoffs.