Lovren had spent the last two-and-a-half seasons in Russia with Zenit Saint Petersburg but leaves with his contract still having six months to run.
The 33-year-old won two Russia league titles with Zenit.
Lovren previously starred for Lyon between 2010 and 2013 before leaving for Southampton in England.
He joined Liverpool after just one season with the Saints, going on to win the Premier League and UEFA Champions League in six seasons at Anfield.
"I am very happy to return to Olympique Lyonnais," he told the official club website. "It was the club that opened the doors of international football to me, I will never forget it.
"I have many memories here, many links too, especially with President Jean Michel Aulas who has always supported me.
"I left Lyon in 2013 with regrets because I felt I had not shown everything. I want to prove to everyone what a player I really am."
Lovren could make his second Lyon debut when they welcome Metz to the Groupama Stadium on January 7.
Lyon are currently eighth on the Ligue 1 standings.