CSKA Moscow saw their lead at the top of the Russian Premier League cut to four points after being held to a 2-2 draw against arch rivals Spartak Moscow.
It could have been even worse for the league leaders, who had to fight back from two goals down after Aiden McGeady and Ferreira Ari netted either side of half-time for Spartak. Ahmed Musa halved the deficit in the 73rd minute before Alan Dzagoev scored from the penalty spot in the last minute, with Rafael Carioca seeing red for Spartak late on.
Zenit St Petersburg left it late to take full advantage of CSKA's slip-up and move to within four points of their title rivals. They looked like they would have to settle for a share of the spoils at home to FK Krasnodar, but Portugal midfielder Danny popped up in the dying seconds to score the only goal of the game.
Third-placed Anzhi Makhachkala slipped six points behind Zenit after they let a 3-1 lead slip to draw 3-3 against Dinamo Moscow. Dinamo took a 36th-minute lead through Cristian Noboa but Mbark Boussoufa levelled almost immediately after before he saw red just after half-time.
But Yury Zhirkov (50) and Samuel Eto'o (67) put the hosts on course for all three points and even though substitute Alan Gatagov netted to set up a tense finale in the 73rd minute, Anzhi looked set to hold on until Kevin Kuranyi notched in the final minute.