Russian Premier League leaders Zenit St Petersburg suffered their second consecutive league defeat on Friday, going down 2-0 at home to Rostov.
Goals from Vitaly Diakov and Timofei Kalachev gave Rostov the win as Zenit remain three points ahead of Moscow sides Lokomotiv and Spartak, who play city rivals Dynamo and CSKA respectively over the weekend.
"We withstood Zenit's attacks early on and scored twice before the break," Rostov manager Miodrag Bozovic said. "After that we controlled the game and were deserved winners."
Zenit, who won 4-0 when the two teams last met in Rostov in September, started in lively fashion and Rostov goalkeeper Stipe Pletikosa was a busy man in the opening quarter of an hour at the Petrovsky stadium.
But it was Rostov who took the lead in the 18th minute when Diakov converted Artem Dzyuba's cross from the left.
Zenit poured forward in search of an equaliser but they fell further behind in the 39th minute when Belarus international winger Kalachev pounced on an error by Domenico Criscito to find the net, and could not find a route back into the game in the second period.
"There are some matches when everything goes wrong and today was one of those," Zenit head coach Luciano Spalletti said. "We had clear chances at the beginning but failed to convert them. After Rostov scored we lost control completely.
"It's hard to play after the international break and today's game was no different. We just need to forget this match as soon as possible and prepare for the Champions League clash with Atletico Madrid."
Zenit, who lie second in UEFA Champions League Group G after four games, a point clear of FC Porto, face Atletico at home on Tuesday.