"We're obviously very happy to have reached a positive outcome after long negotiations with our Lille counterparts," Marseille president Vincent Labrune said. "I would like to point out the quality of the exchanges I've had these last few days with (Lille president) Michel Seydoux."
Thauvin attracted widespread criticism for refusing to play or train with Lille this season and never made an appearance for the club as he tried to force a move to Marseille, which is playing in the Champions League.
"Such an offer for a player who still has everything to prove can't be refused. So we accepted it in the interests of Lille," Seydoux said. "Everyone is united in condemning the unacceptable attitude of Florian Thauvin. We suffered from a situation created by a player and his adviser, without scruples, interested exclusively by financial concerns."
Thauvin's transfer falls short of the 20 million ($26.4 million) Monaco recently paid to buy midfielder Geoffrey Kondogbia from Sevilla.
Marseille followed up Thauvin's deal by signing another member of France's Under-20 World Cup team, with 20-year-old central midfielder Mario Lemina arriving on a five-year deal from Lorient.
Sochaux midfielder Ryad Boudebouz, linked with a move to Liverpool two seasons ago, joined Bastia on a three-year deal reportedly costing the Corsican club only 1 million ($1.32 million) plus assorted bonuses, as the 23-year-old was in the final year of his contract.
Elsewhere, Zambia striker Emmanuel Mayuka joined Sochaux on loan from Southampton.
The 22-year-old Mayuka was only the Southampton starting lineup for only one match last season, along with a further 10 appearances from the bench, but showed his potential as he helped Zambia win last year's African Cup of Nations, scoring in the semifinal win over Ghana.
Newly-promoted Nantes secured loan moves to bring forward Johan Audel from Stuttgart and Romania midfielder Banel Nicolita from Saint-Etienne for the rest of the season.
Rennes acquired forward Silvio Romero on loan from Argentine club Lanus with an option to buy his contract at the end of the season. The 25-year-old Romero scored 13 league goals last season.