Lyon made the trip hoping to open a five-point gap on champions Paris Saint-Germain, who are not in action until Sunday when they travel to Monaco.
And things started well when Corentin Tolisso swept home Nabil Fekir's corner in just the third minute, and Hubert Fournier's side maintained their lead until half-time.
The match swung on its head in the space of four second-half minutes, though, as first Idrissa Gueye put the finishing touch to a wonderful move that also included Kevin Koubemba and Rony Lopes.
Lopes then proved the match-winner on the hour as he curled a shot past namesake Anthony Lopes in the Lyon goal.
Defeat leaves Lyon just two points ahead of PSG, meaning Laurent Blanc's men will go top if they beat Monaco.
At the wrong end of the table, relegation-threatened Evian secured a vital 2-1 victory at bottom club Metz - an own goal from Johann Carrasso and a Gilles Sunu strike doing the damage for the visitors.
They are now level on points with Toulouse, who rescued a 1-1 draw against Saint-Etienne thanks to Jean-Daniel Akpa Akpro's 88th-minute leveller.
Elsewhere, Lorient eased their relegation fears with a 2-0 win over Bastia, beleaguered Lens lost 1-0 at home to Rennes and Bordeaux's clash with Reims finished 1-1.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.