Rudi Garcia rued Lyon allowing their Champions League fate to slip from their grasp with a 2-0 defeat at Zenit.
Lyon controlled the action in St Petersburg for long periods but lacked cutting edge in the injury absence of star attacker Memphis Depay.
Zenit's imposing centre-forward Artem Dzyuba headed the hosts into a 42nd-minute lead and Magomed Ozdoev's deflected strike six minutes from time made the points safe.
The result leaves Lyon level with Zenit on seven points heading into the final matchweek, knowing they must better the Russian Premier League champions' result next time out to finish above them.
"We owed it to ourselves to do better," Garcia told reporters.
"We needed at least a draw to keep matters in our own hands when it comes to qualifying.
"We conceded two goals when we sat back. We would have done better pressing higher up the pitch and creating more chances."
Group leaders RB Leipzig have already qualified and are up next for Lyon, while Zenit travel to Benfica – a Europa League berth now the best the Portuguese giants can hope for.
Sergei Semak oversaw back-to-back defeats against Leipzig and knows his men have room for improvement.
"What I didn't like was the first part of the second half when we were too passive," the Zenit head coach said.
"Apart from that we did what was needed and deserved to win. But as you saw, there are certain aspects we have to work on."
Dzyuba could not resist poking a little fun at Zenit's domestic rivals Lokomotiv Moscow being knocked out of the Champions League following their defeat at home to Bayer Leverkusen on Tuesday.
"It was sad to see Lokomotiv eliminated last night but we'll try to go as far as possible – I can promise that," he told UEFA.com.
"It was tough under pressure from Lyon in the second half. But we were quite good and Misha Kerzhakov, especially, had a great game in goal."