The victory left Lyon third on 69 points from 34 matches, one behind second-placed Monaco and three ahead of fourth-placed Marseille, who both have a game in hand.
With the top two gaining automatic Champions League berths and the third-placed team entering the qualifying rounds, Marseille will now be under even more pressure to beat Lille at home on Saturday afternoon (Sunday morning AEST).
Dijon goalkeeper Baptiste Reynet stood out for the home side despite conceding an avalanche of goals in a rip-roaring contest, as he produced a string of superb saves.
Memphis Depay fired Lyon ahead in the fifth minute when he steered in a cross by fellow ex-Manchester United player Rafael da Silva before Naim Sliti equalised against the run of play with a fine low shot from 25 metres.
Reynet kept his team afloat in the first half but was powerless at the start of the second when a Valentin Rosier own goal and a Nabil Fekir solo effort in quick succession gave Lyon a 3-1 lead.
Sliti struck again in the 55th minute with a bouncing volley to revive Dijon's hopes of a comeback but they were extinguished in the closing stages by the classy visitors.
Striker Bertrand Traore made it 4-2 with a neat side-footed finish from 15 metres and substitute Maxwel Cornet drilled in a loose ball from inside the penalty box in the 81st minute.
In the day's other match, 10-man Nantes were held to a 1-1 home draw by fifth-placed Rennes, whose UEFA Europa League hopes were boosted by a late equaliser.
Adrien Thomasson put Nantes ahead just before half-time but Claudio Ranieri's side had Emiliano Sala sent off soon after the break and paid a late price when James Lea Siliki's 81st-minute shot deflected off Nicolas Pallois into the net.