Zenit extended their Russian Premier League advantage with a 1-0 win over Kuban Krasnodar after CSKA Moscow slipped up at Krasnodar.
Brazilian striker Ari scored twice within the opening six minutes to see off CSKA 2-1 as Roman Eremenko's 14th-minute effort proved not enough to spark a comeback from the visitors.
And Zenit responded well later on Saturday, Hulk's first-half effort enough to see off Kuban and put Andre Villas-Boas' side into an eight-point lead at the top - Krasnodar moving into second above CSKA.
"I'm really pleased with my team's performance," Villas-Boas said. "They showed great discipline, great belief and scored a very, very good win. I think we were in control throughout the game.
"Of course we could have scored more goals to make the win easier. But anyway I think the win is deserved."
Torpedo Moscow beat Rostov 2-1 to climb out of the bottom two, but could face punishment over alleged racist chants by their fans.
Goals from Dalibor Stevanovic and Aleksandr Salugin won the points but the crowd's behaviour will be looked into after claims of racism from Torpedo fans, who were found to have abused Dynamo Moscow defender Chris Samba in September, resulting in a partial stadium closure.
"We are looking into claims Torpedo fans were heard making monkey chants which were supposedly addressed at Rostov's dark-skinned players," the head of the Russian Football Union's disciplinary committee Artur Grigoryants said.
"These facts have yet to be confirmed in either the match delegate's or the match inspector's reports. We will be speaking to representatives of the clubs and studying video footage."
Bottom side Arsenal Tula claimed just their second win of the season in stunning circumstances, thrashing Amkar Perm 4-0 at home, moving them within three points of safety.
Moscow pair Dynamo and Spartak moved into the European places with respective 3-0 and 4-2 wins over Terek Grozny and Mordovia Saransk.
Elsewhere, Rubin Kazan beat Ural 3-1 and Lokomotiv Moscow were held to a goalless draw at home to Ufa.