Real Madrid slumped to a second shock Champions League defeat to Shakhtar Donetsk to slip to third in Group B.
Real were looking for revenge for October's surprise 3-2 home reverse, but second-half goals from Dentinho and Solomon stunned them again.
Real have never failed to qualify for the knockout stages of a Champions League campaign in 24 attempts, but they have work to do now, while Shakhtar have a real chance of reaching the last-16 after climbing into second spot.
Borussia Monchengladbach stay top despite a 3-2 defeat at home to Inter Milan, who also kept their hopes of progressing alive on what promises to be a nailbiting final matchday.
Matteo Darmian and two from Romelu Lukaku gave Inter victory, with Gladbach's goals coming from Alassane Plea.
Liverpool, who had Republic of Ireland's Caomihin Kelleher in goal, secured qualification and top spot in Group D thanks to a goal from Curtis Jones in a 1-0 win over Ajax.
A howler from Ajax goalkeeper Andre Onana gifted youngster Jones his first Champions League goal at Anfield.
Atalanta are second after Cristian Romero cancelled out Alexander Scholz's opener in a 1-1 draw with FC Midtjylland.
A late Thomas Muller penalty earned Bayern Munich a 1-1 draw at Atletico Madrid, meaning the Spanish side must avoid defeat at Red Bull Salzburg in their final group game to progress.
Joao Felix had put Atletico ahead midway through the first half against a largely second-string Bayern, who had already qualified.
At the other end of Group A Mergim Berisha scored twice as Salzburg beat Lokomotiv Moscow 3-1.
Manchester City won Group C despite being held to a goalless draw by Porto, who are also through, while two Dimitri Payet penalties gave Marseille a 2-1 win against Olympiacos.