A second-half strike was enough to help Monaco take a win in Germany.
Monaco boosted its chances of reaching the UEFA Champions League's last 16 with a smash-and-grab 1-0 win at Bayer Leverkusen.
Substitute Lucas Ocampos scored with 18 minutes to play as Leverkusen - which completely dominated the Group C contest on Wednesday - was left to rue its profligacy in front of goal.
Argentinian Ocampos was introduced just two minutes before his winner and his strike lifted Monaco to second in the pool.
The French side now has eight points and is just one behind Leverkusen, which could have qualified with a win or a draw.
With Zenit in third on seven points, Monaco's win means three sides from the pool can still qualify for the round of 16 heading into matchday six - when Monaco hosts Zenit and Leverkusen goes to bottom-placed Benfica.
Wendell returned from suspension for the home side, while former Leverkusen forward Dimitar Berbatov - who has recently overcome a thigh injury - started for Monaco.
The Ligue 1 outfit made its intentions clear from the off, sitting deep and defending in numbers.
Perhaps as a result, Leverkusen did not play with its usual energy, and was restricted to attempts from long distance - Hakan Calhanoglu and Wendell trying their luck in the first 20 minutes.
Tricky South Korean winger Son Heung-min had a fierce effort blocked by Ricardo Carvalho as Leverkusen began to dominate, and only the woodwork prevented the BayArena crowd from celebrating in the 28th minute.
Lars Bender was the unlucky player, smashing a volley against the crossbar after Monaco had failed to clear its lines.
A clever set piece straight from the training ground then caught Monaco napping but Calhanoglu could only tamely head at goalkeeper Danijel Subasic.
Calhanoglu continued to look lively after the break, but he could not match an excellent storming run with a suitable finish, shooting straight at Subasic in the 54th minute.
Leverkusen head coach Roger Schmidt introduced Josip Drmic just before the hour mark in a bid to find a goal, but the Switzerland international hurriedly shot wide when presented with a good chance.
Karim Bellarabi just missed the target from an acute angle as Leverkusen became increasingly frustrated.
Then came the sucker punch, as Monaco took the lead through Ocampos.
Calhanoglu lost the ball on the wing and Berbatov showed great skill before sliding a pass into Nabil Dirar, who swung in an outstanding cross from the right.
Dirar's cross beat Giulio Donati and fell perfectly for Ocampos, who slid in to volley past goalkeeper Bernd Leno.
Drmic then wasted a one-on-one opportunity, shooting at Subasic, and his miss summed up Leverkusen's night - one of wasted chances and disappointment.