Spartak Moscow have boosted their hopes of a place in next season's UEFA Champions League qualifying stages with a 3-2 win away to Premier League champions Zenit St Petersburg.

They trailed for a long time to Alexander Kerzhakov's 23rd-minute goal but Diniyar Bilyaletdinov equalised in the 70th minute. That was the prelude to a dramatic finale, as Sergei Semak restored Zenit's lead from the penalty spot but Emmanuel Emenike immediately equalised and Rafael Carioca grabbed a late winner.

The win leaves Spartak level on points with city rivals CSKA, who play Kuban Krasnodar on Tuesday. Another Moscow team, Dinamo, are a point back having slipped to fourth with a 2-2 draw against Lokomotiv Moscow. They twice came from behind, Kevin Kuranyi and Zvjezdan Misimovic equalising after goals from Maksim Belyaev and Dennis Glushakov.

Big-spending Anzhi Makhachkala, who on 70 points are still just in touch if all their rivals for second place fail to win in their closing fixtures, beat Rubin Kazan 3-1 with goals from Mbark Boussoufa, Christopher Samba and Samuel Eto'o. Sergei Davydov had given Rubin a first-minute lead.

In the Relegation Group, Tomsk and Spartak Nalchik are already condemned to the drop ahead of their clash tomorrow and Volga Nizhny Novgorod know they will feature in the relegation play-off. The latter went down 1-0 today at Rostov, who boosted their hopes of avoiding that lottery as substitute Dmitri Kirichenko's goal took them a point ahead of Krylya Sovetov, who play Krasnodar tomorrow. Aleksandr Shulenin was earlier sent off for Volga.

Terek Grozny won 3-1 in a meaningless but entertaining encounter with Amkar Perm. Zaur Sadaev's seventh-minute opener was cancelled out by Marko Blazic, but Maciej Rybus restored the hosts' lead and Sadaev clinched victory in the 85th minute.