Real Madrid laid down a marker in the La Liga title race as they won 3-1 at Barcelona in the first Clasico of the season.
Fede Valverde gave Real the dream start with a fifth-minute strike, before Ansu Fati equalised just three minutes later from close range.
But Sergio Ramos converted a 63rd-minute penalty that he won after VAR intervened, before Luka Modric rounded off a deserved victory in the final seconds of normal time with the calmest of finishes.
In an entertaining game, Thibaut Courtois was alert to deny Lionel Messi before half-time but Barca remain 10th and are six points behind Real with a game in hand.
- Match stats | How the teams lined up
- La Liga news | Results | Fixtures | Table
- All Sky Sports' offers for the season
How Real bounced back to beat Barca
After a nightmare week for Zinedine Zidane, Real started the clash in the best way possible. Karim Benzema's through-ball was perfect for Valverde, who took advantage of lackadaisical Barca defending and finished beyond Neto.
Barcelona: Neto 7, Dest 7, Pique 6, Lenglet 5, Alba 6, Busquets 5, De Jong 6, Pedri 5, Coutinho 5, Fati 7, Messi 6,
Subs: Trincao N/A, Griezmann N/A, Trincao N/A, Braithwaite N/A
Real Madrid: Courtois 7, Nacho 6, Varane 6, Ramos 8, Mendy 7, Valverde 7, Casemiro 7, Kroos 6, Asensio 6, Benzema 6, Vinicius 6
Subs: Vazquez 6, Modric 7, Rodrygo N/A
Man of the match: Ramos
But that joy was short-lived as Barca sliced through the Real defence with their first attack. Jordi Alba bent his run perfectly to beat the offside trap and carried the ball into the box, where he squared for Fati who had a simple finish.
Philippe Coutinho and Messi had already tried their luck from range when Messi saw Courtois produce a moment of magic after 24 minutes. The Argentine used deft feet to beat Ramos in the box and fired in a shot to the near post with his right foot. Courtois was alert and threw himself across the goal to push the ball away.
The game was being played at a frantic pace and Real went straight up the other end to create a chance of their own. Benzema saw his low effort pushed away by Neto after Kroos had found him 15 yards out from goal.
It was Barca who looked most likely to take the lead after half-time. Fati dragged a low shot just wide of Courtois' right-hand post, before Coutinho failed to hit the target with a header at the back post - Fati again the creator for the hosts.
- Zinedine Zidane was able to recall Sergio Ramos to the starting lineup after he missed the Champions League defeat to Shakhtar Donestk. Marco Asensio also started as Luka Modric dropped to the bench.
- Ronald Koeman named three teenagers in his starting 11, with 17-year-old Pedri joining Ansu Fati, 17 and Sergio Dest, 19, in the team. Antoine Griezmann and Ousmane Dembele both dropped to the bench, but Jordi Alba was fit to start.
And they were made to pay for those misses on the hour-mark. Ramos theatrically threw himself to the floor in the box as Kroos' free-kick drifted out for a goal-kick. It looked to be a dive in real time but replays showed Clement Lenglet had pulled his shirt.
After consulting VAR and the screen by the side of the pitch, referee Juan Martinez Munuera changed his decision and pointed to the spot. Ramos made no mistake from the 12 yards.
Despite Barca pressing for an equaliser, it was Real who continued to create the better chances. Toni Kroos saw a Neto double save keep him at bay, while Ramos met a deep cross with a fierce volley which was brilliantly kept out by the foot of the keeper.
Modric made sure of the three points with the calmest of finishes in the final minute of stoppage time. Neto smothered the ball at Vinicius' feet but it fell to sub Rodrygo, who squared it for Modric. The Croat rounded Neto, before taking his time and finishing between two defenders guarding the line with the outside of his boot.
It was a deserved victory for Real, who put behind their difficulties against Cadiz and Shakhtar Donestk to produce a perfect away display. Barca were bright in spells, but question marks will be asked over Ronald Koeman's reluctance to make substitutes earlier.
Man of the match - Sergio Ramos
Sergio Ramos has played in more Clasico matches than any other player in history and his 45th appearances was one to remember.
Real's skipper helped bring reassurance to a backline that had struggled without him in the week and kept the likes of Messi and Fati quiet for long periods.
While he didn't need to throw himself over for the penalty, he was fouled and it was no surprise to see him beat Neto from the spot.
Boss Zidane was not surprised with Ramos' impact on the big stage, he said: "We know what he is like as player, but also what he is for the whole team. We always want him to be in the team.
"It's important to have the team playing like they did together, with togetherness. The good things about today are that we secured three points and that Sergio didn't feel any pain."
What the managers said
Barcelona boss Ronald Koeman was livid with the referee's decision to award Real Madrid a penalty in the second half.
He said: "I don't understand the referee's decision regarding the penalty. VAR has never been in our favour. All the decisions are against us. Messi deserved a penalty against Sevilla, red cards weren't given against Getafe, things today too…The decisions always against us.
"There was a push from Ramos on Lenglet. The penalty was incorrect. Yes, there was a pull from Lenglet, but not enough for Ramos to fall."
Koeman added: "I thought we played well. We created good opportunities to score. For some parts of the game we were the better team and it's difficult to understand because we did not deserve to lose the game."
Real Madrid boss Zinedine Zidane, meanwhile, was pleased that his side silenced the critics after a difficult week for his team.
"We had a good game. I'm happy for the players, after all that was said about my players in the last few days. The team was very united. We can enjoy what we did today," he said.
"I don't know if what was said in the past few days was fair, but what I can say is that I'm very proud of my team. It may only be three points, but we must enjoy this considering all the comments that were made about the squad in the past few days.
"It's not about proving people wrong, it's about working hard and believing in what we're doing and being together. That's what we did. We were strong in defence and midfield when defending. It's all about having a good game and that's what we did."
It is Champions League next for both sides, with Barcelona travelling to Juventus on Wednesday and Real Madrid facing a trip to Borussia Monchengladbach 24 hours earlier. Next up in La Liga it's a trip to Alaves for Barca next Saturday evening, while Real host Huesca earlier on in the day.