The hosts took the lead after eight minutes thanks to Clement Grenier who tapped in an Alexandre Lacazette cross at the far post.
Wissam Ben Yedder levelled for the visitors from close range in the 28th minute following fine work from Daniel Braaten as Lyon struggled to capitalise on their possession.
The seven-times French champions upped the pace immediately after the break and Bakary Kone put them back ahead with a header four minutes into the second half.
While Toulouse retained the ball well and had their chances to score another equaliser, France striker Bafetimbi Gomis eventually sealed the win for Lyon just after the hour mark by capitalising on a fine team effort.
Lyon moved up to the third and final Champions League qualifying spot with 56 points with six games to go.
They are one short of second-placed Olympique Marseille, who trail leaders Paris St Germain by nine points after sharing the spoils with Lille, sixth with 53, on Sunday evening.
Earlier, Nice stayed firmly in contention for a European qualification spot thanks to a comprehensive 3-0 home victory over lowly Sochaux in Sunday's Ligue 1 early kickoff.
The southerners missed several chances in the first half but were rewarded for their domination six minutes after the break thanks to Mahamane Traore, who diverted a Nemanja Pejcinovic effort into the goal following a corner kick.