Zenit, 4-1 winners at Krylya Sovetov Samara, and Spartak, who beat Krasnodar 3-2 at home, have 23 points from 10 matches ahead of their potentially explosive clash on Saturday while CSKA have 21.
Brazil forward Hulk and midfielder Oleg Shatov scored two goals each to engineer an impressive second-half comeback for Zenit, who fell behind at Samara after Haitian defender Reginald Goreaux finished off a flowing move with the aplomb of a striker.
Hulk volleyed the equaliser shortly after the break and scored Zenit's third with a dinked finish from a tight angle to cap a 15-minute blitz after Shatov made it 2-1 with a deflected shot from the edge of the penalty box.
Livewire Shatov completed the rout with a rasping shot from 20 metres to leave Zenit in the driving seat on goal difference after Spartak nearly threw away a two-goal lead against Krasnodar.
Aiming for their first league title since 2001, Spartak made a perfect start as Spanish midfielder Jose Manuel Jurado fired them ahead in the fifth minute with a thunderbolt form 30 metres after side-stepping a defender.
Uruguayan midfielder Mauricio Pereyra levelled with a stinging low shot from 18 metres after good work by Pavel Mamaev but Krasnodar's joy was short-lived as Spartak ruthlessly punished a pair of defensive blunders.
Armenia striker Yura Movsisyan restored the home side's lead with a calm finish after he was put through by Ireland midfielder Aiden McGeady and then delivered a cross which keeper Aleksandr Filtsov could only parry into Jurado's path for the Spaniard to volley home from 12 metres.
Substitute Isael reduced the arrears with a piledriver from 30 metres midway through the second half and only a reflex save by keeper Sergey Pesyakov in stoppage time denied the Brazilian an equaliser.
CSKA dominated against Anzhi in the evening kickoff but, having missed a hatful of good chances, they were fortunate to avoid defeat in the closing stages after the visitors had what looked like a strong penalty claim waved away by referee Sergey Kuznetsov.