Lyon climbed to 10th, six points behind third-place Marseille, ahead of the rest of the weekend fixtures.
Saint-Etienne's seventh straight loss left them six points away from safety.
Lyon will face sterner tests in the coming week as they take on five teams above them: Marseille, Monaco, Nice, Lens and Lille.
Health restrictions meant the derby was played in front of just 5 000 spectators in a stadium that holds 60 000.
Even at home against the last-place team, Lyon played Dembele as a sole striker but he did just enough to win the game.
Dembele was brought down by Timothee Kolodziejczak in the 15th minute and then converted the penalty.
"It's an important and deserved result," said Lyon coach Peter Bosz, before adding: "The team got nervous because we couldn't score the second goal. Against good teams, we have always played well, but we have lost against supposedly weaker opponents. We are conceding fewer chances but we need to score more and play better, for sure."
Pascal Dupraz the Saint-Etienne coach acknowledged his team struggled.
"It was too poor," he said. "It was better after halftime but not technically coherent enough to put Lyon in more difficulty."