Jude Bellingham scored an incredible equaliser and a 92nd-minute winner to help Real Madrid come from behind to beat rivals Barcelona on his first El Clasico appearance.
Ilkay Gundogan’s first Barca goal had put the hosts ahead after six minutes.
But Bellingham smashed a sensational leveller in the 68th minute, finding the top corner from 30 yards out.
The England midfielder then netted an injury-time volley to continue his fairytale start to his Real career.
Bellingham, 20, now has 14 goals in 16 matches for club and country this season.
Los Blancos’ win meant they moved above Girona on goal difference at the top of La Liga, and four points clear of third-placed Barcelona.
The former Birmingham City midfielder arrived from Borussia Dortmund for 103m euros (£88.5m) this summer – and has proved his worth with crucial contributions.
Bellingham has scored 13 goals in 13 appearances for the club, only failing to find the net in three matches.
But Real and Bellingham had started slowly, as a lapse in concentration saw Gundogan pick up a loose ball in the box before sliding a calm finish for the opener.
Barcelona almost grabbed a second straight after the restart when defender Inigo Martinez headed against the post and Real Madrid keeper Kepa Arrizabalaga kept out Ronald Araujo’s effort from the rebound.
Fermin Lopez also fired against the post as Xavi’s side posed the greater attacking threat.
But Real survived and equalised against the run of play when Bellingham collected the ball and drove an effort beyond Barcelona keeper Marc-Andre ter Stegen.
And in the closing stages the visitors were a level above in pursuit of the winner.
It came when Dani Carvajal swung in a hopeful cross that was flicked on by Luka Modric and met by the onrushing Bellingham, who hooked in to decide a thrilling encounter.