The 23-year-old forward had 33 points (19 goals, 14 assists) in 74 games with the Senators and Columbus Blue Jackets this season. He had 14 points (eight goals, six assists) in 21 games with Ottawa after being acquired in a trade for forward Ryan Dzingel on Feb. 23.
Duclair could have become a restricted free agent on July 1.
"We were pleased with what Anthony was able to add to our lineup after his acquisition," Senators general manager Pierre Dorion said. "This signing improves our team speed and scoring depth up front. Anthony's speed and skill can be dynamic, and at only 23 years old we feel he has the chance to grow into a really consistent contributor."
Selected by the New York Rangers in the third round (No. 80) of the 2013 NHL Draft, Duclair has 122 points (56 goals, 66 assists) in 287 regular-season games with the Senators, Blue Jackets, Chicago Blackhawks, Arizona Coyotes and Rangers. He has never played in the Stanley Cup Playoffs.