Lokomotiv Moscow took full advantage of Zenit's dropped points, going top of the Russian premier League with a 3-1 win over Kuban Krasnodar.
Zenit needed an 78th-minute Axel Witsel goal to salvage a point at Terek Grozny on Sunday and were made to pay the price with a convincing Lokomotiv performance a day later.
Kuban, who tasted UEFA Europa League success against St Gallen on Thursday, were behind after just five minutes at the Stadion Kuban, courtesy of Brazilian defender Maicon.
Nine minutes later Vedran Corluka added a second before Mbark Boussoufa put the visitors three goals ahead at the break. A Djibril Cisse consolation proved too little, too late as Lokomotiv moved two points clear at the top of the table.
Third-place Spartak Moscow sit within a point of Zenit after a thumping 6-1 win over Volga, who are now five games without a win in the top flight.
Braces from Juan Manuel Jurado and Aras Ozbiliz, a goal from Lucas Barrios and a Denis Kolodin own-goal handed the hosts the victory, with Matija Dvornekevic scoring Volga's only goal.
Valeri Karpin's men were boosted further on Monday as CSKA Moscow were held to a goalless draw at Rostov.
Bottom side Anzhi Makhachkala saw their miserable form continue as they were beaten 2-0 at home by Tom Tomsk before Rubin Kazan picked up three points against Amkar Perm thanks to goals from Bibras Natcho, Jose Rondon and Oleg Kuzmin.
Elsewhere Krylya Sovetov picked up just their fourth win of the campaign, beating Krasnodar 1-0, while Dinamo Moscow overcame Ural at home.
Vladimir Granat, Kevin Kuranyi and Aleksandr Kokorin were the men on the scoresheet for Dan Petrescu's men.