The Ligue 1 side are now second in the group and only need to hold Zenit to a draw in the last game to ensure they progress to the last 16
Substitute Lucas Ocampos scored with 18 minutes to play as Leverkusen - who completely dominated the Group C contest on Wednesday - were left to rue their profligacy in front of goal.
Argentine Ocampos was introduced just two minutes before his winner and his strike lifted Monaco to second in the pool.
The French side now have eight points and are just one behind Leverkusen, who knew they were through prior to kick-off following Zenit St Petersburg's 1-0 defeat of Benfica.
Wendell returned from suspension for the hosts, while ex-Leverkusen forward Dimitar Berbatov - who has recently overcome a thigh injury - started for Monaco.
The Ligue 1 outfit made their intentions clear from the off, sitting deep and defending in numbers.
Perhaps as a result, Leverkusen did not play with their usual energy, and they were 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 their 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.
And 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.