Martin Odegaard gave his parent club a telling reminder of his talents as Real Sociedad stunned Real Madrid with a 4-3 victory in the Copa del Rey quarter-finals.
The 21-year-old playmaker opened the scoring midway through the first half at the Santiago Bernabeu, assisted by a dreadful goalkeeping error from Alphonse Areola.
That was Odegaard’s sixth goal in the first season of a planned two-campaign loan stint in San Sebastian and Sociedad striker Alexander Isak then took centre stage with two goals in as many second-half minutes.
Mikel Merino made it 4-1 after Marcelo pulled one back for Madrid, and Sociedad held out to hand Zinedine Zidane’s shuffled line-up a first defeat in 22 matches, despite goals from Rodrygo Goes and Nacho and a red card for Andoni Gorosabel in a riotous finale.
Areola erred terribly to reward an enterprising start from Sociedad, pushing Isak’s strike into Odegaard’s path before allowing the midfielder’s first-time follow-up to slide embarrassingly through his legs.
James Rodriguez’s snapshot from the edge of the box drew a fine stop from Alex Remiro low to his right, with the Real Sociedad goalkeeper denying Vinicius Jr and Federico Valverde in quick succession before Sergio Ramos planted a 39th-minute header against the crossbar from an offside position.
Isak’s wayward finishing had threatened to undermine Sociedad’s fine work during the first half and he had a 49th-minute effort chalked off when a VAR review showed him to be offside on the end of Odegaard’s throughball.
But the Sweden forward swivelled to superbly volley a chipped cross from Ander Barrenetxea – on as a half-time replacement for Adnan Januzaj – into the top left corner.
Isak then made further mockery of his earlier wastefulness by thundering an unstoppable shot high beyond Areola from Nacho’s mishit clearance.
Unfortunately for the visitors, Remiro’s earlier sureness deserted him as Marcelo fired through his grasp at the near post, handing Madrid a 59th-minute lifeline.
More slapdash defending sealed their fate, however, with Merino the unlikely and unmarked beneficiary when Isak turned provider.
Madrid almost dug themselves out of a hole of their own making, with Vinicius cutting back for Rodrygo to slam in after having a header of his own disallowed for offside.
Nacho’s stoppage-time header and Gorosabel’s second yellow card, for a foul on Vinicius, meant Sociedad stumbled over the line in a manner at odds with their earlier brilliance.
Real Madrid (4-3-3): Areola; Nacho, Militao, Ramos, Marcelo; James (Modric 45), Valverde (Jovic 76), Kroos; Brahim (Rodrygo), Vinicius, Benzema
Subs not used: Courtois, Varane, Mendy, Isco
Booked: Militao, Vinicius
Goals: Marcelo 59, Rodrygo 82, Nacho 90+3
Real Sociedad (4-2-3-1): Remiro; Gorosabel, Aritz, Le Normand, Monreal; Zubeldia, Merino; Januzaj (Barrenetxea 45), Odegaard (Guevara 64), Oyarzabal; Isak (Munoz 72)
Subs not used: Zaldua, Portu, Willian Jose, Moya
Booked: Le Normand, Odegaard, Zubeldia, Oyarzabal
Red cards: Gorosabel
Real boss Zinedine Zidane had opted for seven changes from the side which beat rivals Atletico Madrid at the weekend, but there was still no place in the squad for Wales forward Gareth Bale.
Real were on the back of a 21-game unbeaten run in all competitions and are three points ahead of Barcelona at the top of LaLiga.
The hosts upped the tempo as James Rodriguez tested Sociedad keeper Alex Remiro with a 20-yard effort before Vinicius’ cut-back was blocked and Federico Valverde’s rising drive was saved.
Captain Sergio Ramos then saw his header come back off the crossbar, but the offside flag was swiftly up anyway.
Sociedad threatened again just before half-time as Isak blasted his shot off target after being played through on goal.
Luka Modric replaced Rodriguez for the second half, but the hosts were almost further behind when a defence-splitting pass from Odegaard found Isak for the striker to slot home – only for the goal to be ruled out by VAR for a close offside call.
Real – who have won the competition 19 times, but not since since 2014 – were again left chasing the game, as Karim Benzema headed over from Nacho’s cross.