Cristiano Ronaldo starred as counter-attacking Real Madrid dismantled Barcelona 3-1 at the Nou Camp to reach the Copa del Rey final, sealing a 4-2 victory over the two legs.
Ronaldo scored a first-half penalty, then a second just before the hour to leave the Liga leaders with a huge task. And Raphael Varane, who struck in the first leg, added a header to all but kill off the tie.
Barcelona dominated possession but were dominated everywhere else, with Lionel Messi conspicuous by his absence in a rare poor game.
The hosts did add a super goal in the 89th minute, Jordi Alba tucking away Andres Iniesta’s through ball on the volley, but as well-taken as it was, it represented scant consolation.
Real Madrid go into their 38th Copa del Rey final, where they will face either Atletico Madrid or Sevilla, depending on the result of their second leg tie on Wednesday.
Barcelona may have the league virtually sewn up, but their hopes of a treble are over, and their all-conquering season is in danger of taking a major hit, with the team needing to overturn a two-goal deficit against AC Milan to reach the Champions League quarter-finals.
And confidence in the Blaugrana ranks cannot fail to have taken a hit ahead of another Clasico on Saturday, this time at the Bernabeu in the league.
Both sides made seven changes to their line-ups after victories in La Liga at the weekend, meaning that both were at full strength for the tussle.
It was Barcelona who came racing out of the traps, Iniesta firing a shot from distance not far wide within 40 seconds, Messi then dragging a low, angled shot only just beyond the far post the next minute.
But despite lacking the ball, Real began to settle into the contest, and present a threat on the break.
When Cristiano Ronaldo was allowed to go one-on-one with Pique in the 12th minute, he made it count. One bewitching stepover after the next came, before Pique lunged in and brought him down in the area. The defender was furious with the decision, but there was no doubt contact was made, and a yellow card awarded.
Ronaldo became the first player to score in six successive away Clasicos with a low spot kick which sent Pinto the wrong way, and from that point on the hosts were subdued.
Barcelona had claims for penalties turned down when Cesc Fabregas and Pedro took tumbles in the first half, but there was a hint of simulation to both appeals, and the referee was not fooled.
Ronaldo, meanwhile, was afforded too much space throughout the half and had several shots. His best effort came from a low drive which was desperately blocked by Dani Alves, but he was a handful throughout the half, with Angel Di Maria and Mesut Ozil continually supplying him.
Barcelona meanwhile scarcely tested Diego Lopez, their best chance coming when Messi craftily slipped a free-kick just under the wall and narrowly wide of the post with the goalkeeper stranded.
The second half quickly fell into the same pattern as the first. Barcelona attacked and had a couple of chances with Sergio Busquets drawing a save from Lopez which nearly rebounded to Fabregas.
But as another chance broke down, Real struck in three swift moves. Sami Khedira hit a first-time pass half the length of the field to Di Maria. The Argentine swept past Carles Puyol, and though his shot was saved, the ball fell to Ronaldo, who needed no second invitation.
That was a body blow to the home side, made worse 11 minutes later when Varane leapt highest to a corner, and nodded with precision past Jose Manuel Pinto.
Barcelona threw on substitutes, symbolically withdrawing midfield maestro Xavi as they tried to shift gears, but by the time they penetrated Real’s defence it was too little, too late.
Alba’s finish was trademark Barcelona – but Real’s performance was a masterclass in how to beat the side most would say is the best in Europe.