Real Madrid inflicted a painful 3-1 defeat on rivals Barcelona, completing a 4-2 aggregate win in the Copa del Rey semi-final second-leg in the Nou Camp.
Cristiano Ronaldo picked himself up after Gerard Pique's foul to score from the spot and Barca struggled to reply.
Lionel Messi curled just wide but his side were caught short as Ronaldo swept home from Angel di Maria's shot.
Raphael Varane's precise header made it 3-0 on the night and Jordi Alba's neat finish was little consolation to Barca.
Trailing leaders Barcelona by 16 points in the league, and with their Champions League campaign under threat against Manchester United next Tuesday, Real's chance to book their place in the Copa del Rey final against either Sevilla or Atletico Madrid had taken on extra importance for under-pressure Madrid boss Jose Mourinho.
But Barcelona, who had won only five of their previous 10 games, began as though shutting off another of the Portuguese's routes to silverware was the spur they needed.
Pedro twisted Fabio Coentrao inside out with a flurry of feints inside the opening 90 seconds, to create an opening that Messi cracked just past the post.
The visitors posed a threat for the first time as Dani Alves had to intervene quickly to prevent Angel di Maria's floated through ball reaching the lurking Ronaldo.
Pique was less dexterous when confronted by the Portuguese attacker with the ball on the floor.
Thrown off-balance by Ronaldo's flashing stepovers, the Barcelona defender's stretching leg sent Real Madrid's top-scorer tumbling in the box.
Barcelona protested in numbers and volume, but Ronaldo remained unruffled, drilling low into the corner to score in his seventh successive El Clasico.
Real Madrid continued to look dangerous on the break and, despite the hosts enjoying more possession, the threat of a second away goal hung over Barcelona's ineffectual probing around the opposition penalty box.
Their frustrations found an outlet when referee Alberto Undiano waved away their appeals after Xabi Alonso bundled into Pedro in the box, before the official awarded a free-kick that Messi fired under the wall, but wide of the upright.
Diego Lopez beat away a meaty Sergio Busquets shot, but as Barcelona pressed forward, they stumbled straight into their opponents' ambush.
Sami Khedira's clearance was pounced upon by Di Maria, who left Carles Puyol sprawling, before hammering a shot goalwards that looped up off Pinto for Ronaldo to convert.
Jordi Roura, standing in as Barcelona's manager while Tito Vilanova recovers from cancer surgery, shuffled his pack as he withdrew Cesc Fabregas for David Villa.
But Mourinho's tactical victory, at the club where he served as a translator before starting his managerial career, was assured by Varane's header.
The 19-year-old Frenchman met a corner unchallenged, leaving Barca needing four goals to overhaul Madrid's aggregate lead.
Madrid substitute Pepe raised the temperature late on with a series of physical challenges, but it was the only action to animate the home fans before Alba poked Andres Iniesta's chip past Lopez.
Barcelona will not have to wait long for a chance at revenge. They travel to the Bernabeu on Saturday to meet Real in the sixth Clasico of the season.