Leaders Zenit St. Petersburg battled back from a goal down to extend their winning streak in the Russian Premier League to eight matches with a 2-1 victory away to Ural Yekaterinburg on Saturday.
Zenit stay five points clear of second-placed Spartak Moscow, who beat visiting Rustov 2-0.
Another Moscow side, Lokomotiv, who started the weekend in joint second place, travel to Rubin Kazan on Sunday.
Zenit started confidently and were awarded a penalty in the 10th minute when Ural goalkeeper Alexei Solosin fouled Brazilian forward Hulk.
But Hulk sent the ball wide from the spot.
Zenit paid the price for squandering their chances in the 42nd minute when Ural forward Spartak Gogniev robbed Portuguese defender Luis Neto and drove in a low shot from ten metres.
Zenit upped the tempo after the break and in the 53rd minute Russia international midfielder Roman Shirokov lobbed the ball into the net over Solosin after Hulk had diverted Andrei Arshavin's pass into his path.
Zenit continued to test the home defence and in the 78th minute Shirokov netted the winner as he headed Oleg Shatov's cross from the right into the net from the edge of the six-yard box.
"It was a very difficult match for us," Zenit manager Luciano Spalletti said.
"But we achieved an outstanding result. We showed strong character and managed to reverse the situation after the interval. I'd say that it was a reaction of a top-class team."
Meanwhile, Spartak Moscow looked more focused from the start against Rostov and took the lead in the 15th minute when Rostov's Angolan defender Bastos fouled Armenian forward Yura Movsisyan in the box.
Movsisyan made no mistake from the spot for his eighth goal of the season.
Argentinian midfielder Tino Costa added the second in the 76th minute from Dmitry Kombarov's cross.