Barcelona gave their La Liga title hopes a huge boost with a 3-2 defeat of arch-rivals Real Madrid in a thrilling Clasico at the Santiago Bernabeu on Sunday.
Lionel Messi scored a brace, including a superb last-gasp winner, and Ivan Rakitic added the third to pull Barca even with Real atop the league on 75 points, though the hosts still enjoy a game in hand.
And the game started with a bang.
Cristiano Ronaldo had a penalty shout after just two minutes when he looked to have been taken down in the box by Samuel Umtiti after touching the ball away from the Barcelona defender. However the referee judged there was no contact and allowed the teams to play on.
Ronaldo tested Marc-Andre ter Stegen minutes later when he found space down the right channel, but the Portugal captain ignored Karim Benzema's run before firing tamely at the Barca keeper.
Casemiro was shown a yellow card on 12 minutes for hacking down Messi after the Barca No. 10 dribbled free near midfield.
Ronaldo managed a better effort after 20 minutes from just inside the box, but Ter Stegen did well to get down and parry his shot away.
A bloody Messi needed medical attention on the sideline after a Marcelo elbow caught him on the mouth as the two jostled for the ball. Messi, though, would rejoin the match moments later.
Real found a deserved opener in the 28th minute via midfielder Casemiro. The Brazil international just got a foot to Marcelo's cross from the left, steering his effort off the post and past a helpless Ter Stegen.
Messi then answered five minutes later with a fine solo goal -- the Barca star picking up Rakitic's pass at the semi-circle and weaving through a thicket of Real defenders before coolly slotting past Keylor Navas with his left foot.
Luka Modric forced a fine save from Ter Stegen moments later from distance, but the Barca keeper was again up to the task, keeping the ball out at full stretch.
Gareth Bale, who received a surprise start on Sunday, went down with what appeared to be a calf injury behind the play, and was removed in favour of Marco Asensio
Messi nearly claimed a second five minutes from the break when he pounced onto a loose ball and chipped just wide of the goal.
After the intermission, Dani Carvajal forced a desperate intervention from Gerard Pique after finding space down the right side and firing a dangerous low cross into the six-yard box.
Marcelo then forced another stretching save from Ter Stegen moments later with a well-hit strike from just outside the box.
Ter Stegen was again the hero in the 54th minute, stopping Benzema's close-range header with his leg after an inch-perfect Marcelo cross from the left.
Paco Alcacer was guilty of missing a gilt-edge chance in the middle of the Real box moments later, but his tame toe poke couldn't beat an alert Navas.
Navas was again called into action on 59 minutes -- his reflex save denying Pique's header after a corner-kick situation.
Ronaldo missed a golden chance to give the hosts the lead in the 66th minute, but Asensio's cross was just behind him and the Real superstar could only scoop his stretching shot over the bar.
Andres Iniesta found Luis Suarez with a lovely outside-of-the boot pass to put the Uruguayan in on goal, but Navas wonderfully denied his first-time volley with 20 minutes remaining.
Rakitic looked to have settled the score minutes later -- the Croatia international cutting inside and firing an unstoppable shot past Navas from just outside the box to give Barca a 2-1 lead.
Sergio Ramos was given his fifth Clasico red card minutes later for a wild, two-footed challenge on Messi who had pushed the ball well past the Spain international down the right.
But substitute James Rodriguez seemed to saved Ramos' blushes with a fine finish of a Marcelo cross on 85 minutes.
However, Messi would play the hero of yet another Clasico, scoring his 500th goal for Barcelona with the final kick of the match, precisely curling home Jordi Alba's cross to silence the Bernabeu and keep the Catalans in the title race.