Zenit's long unbeaten run came to an end as Bayer Leverkusen won 2-0 to move to the summit of UEFA Champions League Group C.
Giulio Donati put the German side ahead just after half-time at the BayArena on Wednesday before Kyriakos Papadopoulos doubled the advantage with his first touch five minutes later.
Their efforts were enough to ensure Zenit tasted defeat for the first time in 17 games, with the Germans moving top of the pool thanks to Monaco's goalless stalemate with Benfica.
Zenit held first place at the start of the night having begun their campaign with a 2-0 win at Benfica and 0-0 draw with Monaco.
Yet they did not show the same quality against a Leverkusen side who got their campaign back on track with a 3-1 win over Benfica on matchday two.
Even Brazilian defender Wendell's 79th-minute sending off could not spark a turnaround as the German side took the spoils.
The hosts made one switch from the XI that beat Benfica, Donati replacing Roberto Hilbert at right-back - a decision from Roger Schmidt which proved inspired.
Zenit's sole alteration saw Axel Witsel come back into the starting line-up in place of Oleg Shatov.
The visitors enjoyed the better start, although the Bundesliga side created the first chance when Emir Spahic's glancing header flew just wide.
But that proved a rare early opening, as the sides largely cancelled each other out.
Indeed, the only drama in the initial stages was provided by referee Bjorn Kuipers, who showed several questionable yellow cards - with Hulk, Viktor Fayzulin and Javi Garcia all cautioned for Zenit in a nine-minute spell.
Leverkusen did at least show more endeavour as the half wore on, Hakan Calhanoglu's powerful 25-yard effort forcing Yuri Lodigin into a solid save.
The goalkeeper had to be on high alert again soon afterwards, diving low to his right to keep out Calhanoglu's header from Lars Bender's cross.
That seemed to spark Zenit into life, illustrated when Hulk's attempt from distance flew just wide.
However, they could not maintain the momentum after half-time, with Leverkusen taking a 58th-minute lead when Donati rifled a strike into the bottom corner from 20 yards.
Leverkusen doubled their advantage almost immediately as Papadopoulos rose highest to nod Calhanoglu's superb curling free-kick beyond a helpless Lodigin.
The chances of a twist in the tale seemed greater when Wendell picked up his second yellow card for handball.
But, if anything, the hosts kept pressing in the final stages and could have scored again with Donati seeing two strong shouts for a penalty waved away.
It mattered little, however, as Leverkusen cruised through to maintain their unbeaten start at home under Schmidt.comments