Lens, who played their usual attractive brand of football in a packed Stade Bollaert, are fourth with 21 points having won six and drawn three of their nine games, four points behind leaders Paris Saint-Germain.
They lie one point adrift of surprise package Lorient, who are third after Theo Le Bris's late strike earned them a 2-1 home win against Lille despite being reduced to 10 men after Dango Ouattara was sent off for picking up a second yellow card shortly after the hour.
Lyon's fourth consecutive defeat left them in seventh place on 13 points and put added pressure on coach Peter Bosz.
"With that crowd we know that we have an extra weapon, it makes everything easier," said Lens keeper Brice Samba.
At Stade Bollaert, Lens dominated possession in the first half but Lyon had the better chance to take the lead when Alexandre Lacazette's deflected shot hit the crossbar.
The hosts applied more pressure after the break and went close on two occasions, when Jimmy Cabot's attempt brushed the post just before Anthony Lopes denied Wesley Said from point-blank range in the 76th.
Lens were however rewarded in the 82nd minute as Sotoca coolly converted a penalty after a Thiago Mendes handball, a week before they play Lille in the northern derby.