Alexandre Lacazette will rejoin Lyon on a free transfer from Arsenal, despite the Ligue 1 side not qualifying for European football next season.
Lacazette moved from Lyon to Arsenal in 2017 for an initial €60million (£51.3m) fee on a five-year contract, which comes to its end in June.
The 31-year-old previously suggested he would be open to re-signing for Lyon, adding in April he was in discussion with "many clubs".
Lyon president Jean-Michel Aulas responded by stating "if we need to make compromises to get [Lacazette], we will", while director of football Vincent Ponsot outlined his desire to bring the forward back home.
And Peter Bosz's team, who finished eighth in Ligue 1 this season, have managed to seal the France international's return to his boyhood club, announcing on Thursday that Lacazette has signed three-year deal.
"Olympique Lyonnais are very proud and very happy to announce the return to the club of its striker, trained at OL, Alexandre Lacazette for the next three seasons," a statement read.
"At the end of the contract with the English club Arsenal, the France international has signed up until June 30, 2025."
Lacazette endured a frustrating campaign in front of goal this season as Arsenal missed out on Champions League qualification to fierce rivals Tottenham.
The striker played 30 Premier League games but only scored four times, his worst return since the 2012-13 term when he managed only league three goals for Lyon.
However, Lacazette provided a creative force for Mikel Arteta's team, sitting joint-top of the assists chart with Bukayo Saka on seven.
Lacazette also ranked sixth for chances created at Arsenal, with his 29 placing him behind Emile Smith Rowe (30), Granit Xhaka (32), Gabriel Martinelli (34), Saka (68) and Martin Odegaard (77).
Bosz will hope Lacazette can deliver that creativity for Lyon next season and find his feet in front of goal, given he was the last non-Paris Saint-Germain player to finish as Ligue 1's outright top scorer (27 goals in 2014-15).