Real Madrid put their Manchester City defeat behind them by winning the Clasico and moving back to the top of La Liga.
For 70 minutes it seemed that Cristiano Ronaldo had picked the perfect night to take his seat in his private box at the Santiago Bernabeu and watch his old team. Real Madrid were battering Barcelona but could not score.
But with 20 minutes left, 19-year-old Vinicius found the back of the net thanks to a Gerard Pique deflection and Real Madrid were ahead.
Toni Kroos sent him through and he darted towards Marc-Andre ter Stegen's goal. He opened his body and went for the far corner but his shot cannoned off of Gerard Pique and went past the Barcelona goalkeeper at his near post.
It was fortunate but fortune favours players who play with Vinicius' courage and he had been undaunted by a frustrating first half of promising runs ruined by misplaced crosses.
The Brazilian became the youngest player to score in a Clasico this century and he almost got a second when he cleverly flicked Dani Carvajal's cross just wide. He then charged at ter Stegen, going over the keeper's body leaving referee Mateu Lahoz with a touch decision. He waved away the penalty appeals.
Lionel Messi had a late free-kick but this was not Barcelona's night and it sailed into Thibaut Courtois's hands. He was also booked.
Substitute Mariano Diaz added the second in injury time turning Samuel Umtiti and honing in on ter Stegen's goal before beating the German keeper at his near post. By this point Ronaldo had left his private box and headed back to Italy. Madrid still miss him but they had found two goals to beat Barcelona and move back to the top of LaLiga.
It was no more than they deserved for their second-half performance. They should have taken the lead 10 minutes into the second half when Isco's curler looked destined for the top corner but Ter Stegen stretched a strong right arm and tipped it over for a corner.
The midfielder came even closer on the hour when his header from Dani Carvajal's cross was cleared off the line by Gerard Pique. Madrid had Barcelona rocking back on their heels for the first time in the game but there was no one to apply the knockout. Karim Benzema connected well with a volley at the back post but he sent it over.
Barcelona turned to substitute Martin Braithwaite and he almost scored with his first touch but Courtois made the save.
There were no changes from Zidane, keeping faith with Vinicius who had given us the full repertoire of disappointing final balls in the first half. Vinicius keeps going though. Unfazed and increasingly unshackled with Nelson Semedo fading at right back, he swapped passes with Kroos and put Madrid ahead.
Barcelona never reappeared after the break. They shaded the first period but could not beat Courtois.
Petty squabbles broke out in a scrappy first 45 minutes. Spain full-backs Dani Carvajal and Jordi Alba were both booked after a silly pushing match.
Marcelo, a surprise selection ahead of Ferland Mendy, raced clear but crossed poorly instead of rolling the ball back to the unmarked Isco.
Then Alba crossed with far more quality but Antoine Greizmann leaned back and put the ball over.
Barcelona were finding space in midfield. Arthur Melo was allowed to stroll through and when he reduced Arturo Vidal, he teed-up Messi but the tame shot that followed did not trouble Courtois.
Arthur then raced away from Kroos but he failed to find Messi. One man Messi can always rely on is Busquets and when he put the Argentine through Courtois needed to stand up strong to make the save. He had been Real Madrid's best player in the first half.
The forwards took over in the second half. With Ronaldo watching Vinicius produced the goods.
The 2-0 win lifts the gloom at the Bernabeu after defeat to Manchester City last week. Maybe a comeback against Pep Guardiola's side is not completely out of the question. Supporters stayed in the stadium to celebrate the team's first home league win in a Clasico in five years.