Bayern Munich humbled by Rostov with top spot in group now in jeopardy
Rostov went toe to toe with Bayern Munich and emerged with a shock 3-2 victory thanks to Christian Noboa's decisive free-kick.
While the German giants had already sealed their progress to the knockout stage, they were still vying with Atletico Madrid for top spot and will lament an off-night in sub-zero conditions in Russia.
Goals from Douglas Costa and Serdar Azmoun left it level at half-time before two goals in as many minutes arrived just after the restart, Dmitry Poloz's penalty cancelled out by Juan Bernat's finish.
That left the points up for grabs and Noboa, clad in a beanie-style hat to avert the chill, claimed them when he found the bottom corner from 20 yards.
Bayern travelled without goalkeeper Manuel Neuer, Arjen Robben, Javi Martinez, Arturo Vidal and Kingsley Coman due to a variety of fitness concerns, meaning a first start since pre-season for Sven Ulreich between the posts and a first Champions League appearance in over a year for the fit-again Holger Badstuber in defence.
Rostov threatened early, Aleksandr Erokhin heading over Ulreich only for the covering Bernat to make the clearance.
Bayern spent the next 20 minutes asserting themselves on the game, Renato Sanches and Badstuber enjoying half-chances before Costa picked up on a sloppy pass by Cesar Navas.
The Brazilian forward needed no further invitation and deposited a cool left-footed finish into the roof of the net from inside the area.
That was the club's 400th Champions League goal, a mark only previously reached by Real Madrid and Barcelona.
Costa's opportunistic strike appeared to be enough to send the visitors into the break ahead but Poloz had other ideas, picking up possession in the 44th minute and slotting through Azmoun.
He got the better of Jerome Boateng, who could not keep his footing, and bent a shot past Ulreich to make it 1-1.
Philipp Lahm almost restored the lead seconds after the restart with a clear header but it was Rostov who drew next blood.
Boateng was implicated again, clipping Noboa to concede a minute penalty which Poloz converted, sending the keeper the wrong way, in the 50th minute.
The idea of a shock had just started to form when Bayern wiped out the advantage in style.
Franck Ribery was the creator, measuring a perfect pass into the stride of the advancing Bernat.
The Spaniard still need to find a finish and did so by hammering his shot emphatically beyond the beaten Soslan Dzhanayev.
Rostov did not settle for a morale-boosting draw and when a free-kick presented itself just outside the penalty area in a central position, Noboa took responsibilty.
He approached the ball with a short, laid-back run but produced a fine effort, getting the ball over the wall and down again briskly to get the better of Ulreich.
Bayern attacked relentlessly over the last 20 minutes in pursuit of another equaliser but their best chance fell to substitute Thomas Muller and his header flew wide when he should have finished.