The pair both struck in the second half in France to clinch victory and first place in Group C for the Ligue 1 club
Monaco clinched top spot in Champions League Group C thanks to second half strikes from Aymen Abdennour and Fabinho at the Stade Louis II.
Zenit required victory to pip their hosts to a place in the round of 16, and though they had the better of the first half, they were largely outplayed after the break.
Centre-back Abdennour struck midway through the second period before Fabinho made sure of the win on 89 minutes.
The result gave Monaco a third successive victory and clean sheet in all competitions. Moreover, they progressed having conceded just one goal in six Champions League matches.
The French outfit have successfully navigated their last three group-stage campaigns, having lost in the 2003-04 final and succumbed to last-16 elimination the following campaign.
Leonardo Jardim will also take heart from success in Europe as free-spending Monaco struggle to keep up with Ligue 1’s frontrunners.
In desperate search of the necessary win, Zenit dominated possession from the outset, but they struggled to create meaningful chances.
Wallace, deputising for the suspended Ricardo Carvalho, blocked a Salomon Rondon drive, Abdennour scrambled a loose ball clear and Danijel Subasic punched away a Danny free-kick as the hosts held on.
Monaco belatedly came to life in the 35th minute. Jeremy Toulalan was the unlikely employer of some fine trickery down the right, which enabled him to cut inside and fire a low shot narrowly wide.
Zenit rapidly resumed taking the game to their opponents, but Nicolas Lombaerts’ close-range header from a corner went straight into the arms of Subasic and the first half finished goalless.
Monaco began the second half on the front foot. Yannick Ferreira Carrasco did well to retain possession down the left and cross low for Dimitar Berbatov, whose shot from 10 yards was deflected wide.
Then Nabil Dirar broke down the right and cut the ball across the Zenit box, but no Monaco player was there to get on the end of it.
Monaco’s pressure paid after 63 minutes. Joao Moutinho won and took a free-kick from the left touchline, which Abdennour diverted home in scrappy fashion.
Hulk curled a free-kick just over minutes later, before Abdennour made a superb sliding tackle to deny Danny.
In the closing minutes, Monaco put the result beyond doubt, with Fabinho bursting forward and firing the ball under Lodygin to help Monaco seal top spot on their return to Europe’s top table.