Zenit – who lead Spartak on goal difference – produced a stunning second half to defeat Krylya Sovetov 4-1 on Wednesday.
Luciano Spalletti's side trailed at the break after Haiti international Reginal Goreux's first-half goal, but fought back superbly to claim all three points.
Brazilian Hulk drew Zenit level two minutes in the second half and Oleg Shatov put them in front moments later.
And further goals to Hulk and Shatov helped Zenit to an impressive away victory.
Spartak scored three times in the first 30 minutes as they beat Krasnodar 3-2.
Jose Manuel Jurado's early strike was cancelled out by Mauricio Pereyra, but Yura Movisisyan and Jurado scored again before the half-hour mark.
Isael set up an interesting finish with a goal 22 minutes from time, but Spartak did enough to hold on for victory.
Lokomotiv won far easier, cruising to a 3-0 success against Ural thanks to goals from Dame N'Doye, Dmitri Tarasov and Lassana Diarra.
Rubin Kazan came from behind to draw 2-2 against Dinamo Moscow, while CSKA Moscow were held to a 0-0 draw against Anzhi, who are still searching for their first win of the season.
Other results saw Kuban Krasnodar defeat rock-bottom Terek Grozny 3-1, while Amkar Perm and Tom Tomsk notched 1-0 victories against Rostov and Volga respectively.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.