Toulouse stunned third-placed Lyon with a dominant performance at the Stadium Municipal.
Lyon were sluggish in the first half with no shots on target, Toulouse with the majority of the possession.
The visitors were frustrated as decisions by the officials were going Toulouse's way, resulting in yellow cards for Steed Malbranque and Samuel Umtiti for dissent.
Toulouse continued their strong showing at the start of the second half. The home side eventually broke the deadlock in the 50th minute when Franck Tabanou crossed the ball in to the box for Wissam Ben Yedder to head it passed Remy Vercoutre.
Ben Yedder added a second three minutes from full-time to secure the result.
Lyon's miserable afternoon was rounded off by Etienne Capoue slotting in a third in stoppage time.
The win moves Toulouse up to seventh, while Lyon remain third.