Real Madrid suffered a remarkable opening Champions League defeat as Shakhtar Donetsk, missing 10 first-team players due to coronavirus, held on for a 3-2 away win. (More Football News)
Wednesday's Group B clash seemed to be set up for a straightforward Madrid win, with Shakhtar clear underdogs even before losing half their squad to COVID-19 in a situation coach Luis Castro described as "a nightmare".
But Zinedine Zidane's LaLiga champions were outthought and outfought for 45 minutes at their temporary Estadio Alfredo Di Stefano home as strikes from Mateus Tete and Manor Solomon sandwiched a Raphael Varane own goal to secure a three-goal half-time lead.
Madrid also lost at home to Cadiz last Saturday and visit bitter rivals Barcelona in the Clasico this weekend yet at least showed some fight after the break.
Efforts from Luka Modric and Vinicius Junior set up a grandstand finish, but Federico Valverde's apparent equaliser in stoppage time was disallowed for offside as Shakhtar survived for a sensational victory.
The Ukrainian outfit should have led even before they did as Marlos ran clear and had time to pick his spot but sent an awkward effort into Thibaut Courtois' legs.
It was not a miss the makeshift visiting side were made to pay for, though, as they repeatedly dismantled a dismal Madrid defence, Tete sliding in an assured finish for the first before having a hand in the next two.
Courtois spilled Tete's shot at the feet of Dentinho, prompting Varane into a desperate lunge that succeeded only in turning the ball past his own goalkeeper, and the winger's cute backheel then teed up Solomon to make it three.
Madrid were much improved following the restart but still scarcely threatened until Modric's sublime strike, finding the top-right corner from 25 yards.
That flicker of hope should have been swiftly extinguished by Tete, yet the star of the first half somehow blasted wide after running onto Viktor Korniienko's cutback.
By contrast, Vinicius was clinical at the other end, emerging from the bench to score with his first touch as he stole possession from Marlos and swept into the net.
Tete squandered another opportunity, shooting straight at Courtois, and was then just offside before squaring for Marlos to net what Shakhtar thought was a clincher.
Valverde's deflected 92nd-minute attempt squirmed past Anatolii Trubin to seemingly deny Castro's men, but Vinicius - stood in front of the keeper - was offside and Madrid were beaten.