The Sabres had retained the rights to Larsson by extending him a qualifying offer last month. The signing was announced Tuesday.
The Swedish-born player had six goals and 10 assists in a career-high 39 games with the Sabres last season. Larsson was acquired by Buffalo in a trade that sent captain Jason Pominville to Minnesota in April 2013.
Larsson, who turns 23 on Saturday, has an opportunity to become a regular contributor for the rebuilding Sabres this season.