Bennett, capped 51 times since making his debut against Ireland in 2003, will leave the Ospreys after nine seasons with the region to join a club fighting for their Top 14 survival with just four wins from 18 matches so far this season.
“I am looking forward to my new challenge of playing in France with Lyon,” said the 28-year-old battling to prove his fitness for the RBS 6 Nations Championship clash with Italy at the Millennium Stadium on Saturday, 10 March.
“But until then I am fully committed to ending the season on a high and with some silverware for the Ospreys.
“I want to thank the Ospreys and our awesome supporters for a fantastic nine years.
“I have been there from its inception and it will always hold a special place in my heart.”
Bennett will join a club who made their debut in Europe this season, finishing third in their Pool in the Amlin Challenge Cup behind Toulon and Newcastle Falcons.
“Huw was someone we wanted to keep hold of but with boys coming out of contract it is not just a rugby decision,” said Ospreys head coach Steve Tandy.
“He has been a fantastic servant for the Ospreys and is a big loss for us but I wish him all the best in the future.”