Jude Bellingham scored an injury time goal to give Real Madrid a 3-2 win at home to FC Barcelona to decide the 'Clasico' and all but seal this season's La Liga title.
The England midfielder finished Lucas Vazquez's cross at the far post after a run from Brahim Diaz had worked space in the Madrid attack.
The win leaves Real Madrid 11 points clear of Barcelona with just six games.
Real Madrid was without Ferland Mendy and Dani Carvajal through injury, so Vazquez and Eduardo Camavinga played as full backs, while Xavi Hernandez preferred a more defensive midfield of Andreas Christensen and Frenkie de Jong, with Pedri starting on the bench.
Barcelona struck first after six minutes when Andriy Lunin flapped at a corner and Christensen outjumped Toni Kroos to make it 1-0.
Vinicius Jr had a chance to equalize almost immediately, but poked Luka Modric's knockdown over from around 10 yards, although he soon leveled as he beat Marc-Andre ter Stegen from the penalty spot.
Joao Cancelo made a horrible mess of his challenge on Vazquez and the Madrid right back went down after a challenge from Pau Cubarsi, and although it seemed he had looked for the contact as much as the Barcelona youngster, that didn't bother Vinicius as he stepped up to score.
Lamine Yamal, who was Barca's best player, had already forced Lunin into a near-post save and was involved in the second controversy of the game after flicking on Ilkay Gundogan's low corner. Lunin scrambled the ball away, but his body was well behind the goal-line and there was a long VAR check to see if the ball had gone over the line.
No image cleared the issue either way and with no goal-line technology in Spain, Madrid was able to breathe again.
Modric went close again at the other end, and Christensen denied Rodrygo a clear chance in injury time to recover after Bellingham had robbed him in his own half.
The half ended with Pedri replacing De Jong, who had to be carried off after the Barca midfielder looked to have badly injured his ankle as he and Federico Valverde challenged for a 50-50 ball in the middle of the park.
Christensen also failed to start after the break, with Fermin Lopez on for the goalscorer as Barcelona looked to play higher up the pitch.
Real Madrid was content to see Barca have more of the ball and play on the break, with Bellingham stinging Ter Stegen's hands, before Vinicius fired wide after latching onto a long pass from the back.
Fermin put Barca in front in the 69th minute, tapping in from close range after Ferran Torres failed to get a touch on a curling Yamal cross that Lunin could only parry, but Barca's lead lasted just four minutes before Vazquez made it 2-2.
Vinicius sent over a low cross from the left and Vazquez nipped ahead of a static Cancelo to score at the far post.
The Brazilian winger should have scored Madrid's third after latching onto a long ball from Lunin and running half the length of the pitch, only to shoot into Ter Stegen's chest, but Bellingham's late goal meant his miss didn't matter.
Target to lower prices on basic goods in response to inflation
China launches global consumption event series at heavyweight expo
Quakes leave 1.5 mln people homeless in Türkiye: UN
World Insights: NATO's meddling in Asia
Socialite Jasmine Hartin enjoys beach snuggle with electrician hunk
Xi Says to Continuously Consolidate, Develop China
Global trade to rebound by 2.6 pct in 2024: WTO report
CPPCC National Committee Holds Gathering to Ring in New Year, Xi Jinping Delivers Important Speech
Travis Kelce downs whiskey shot on slice of bread at Kelce Jam without Taylor Swift
China: Political settlement only viable way out of Ukraine crisis
Verona confirms Serie A status for another year after beating Salernitana
UN urges trillions in investments to salvage global goals