Cristiano Ronaldo got the better of Lionel Messi on Tuesday, scoring twice to lead Real Madrid to a 3-1 win at Barcelona and a spot in the Copa del Rey final.
After the first leg ended 1-1, Madrid neutralized Barcelona's passing game and counterattacked to perfection at the Camp Nou to hand its archrival its first home loss in any competition since last April.
It was also a second straight cup setback for the Catalan club, which is running away with the Spanish league but lost 2-0 at AC Milan in the first leg of their Champions League last-16 matchup.
While Messi had a quiet night, Ronaldo scored for a sixth straight visit to Camp Nou when he earned and converted a penalty in the 13th minute. Ronaldo hit again on the break in the 57th before Raphael Varane got his second goal of the series in the 68th.
Jordi Alba pulled a late goal back for Barcelona, but it was much too late to prevent Madrid from going through 4-2 on aggregate.
Madrid will play either Atletico Madrid or Sevilla in the Copa del Rey final on May 18.
After struggling in his first encounters with Barcelona, Ronaldo has become a nemesis for the Catalan club by scoring goals that have directly contributed to them losing titles the past three seasons.
Besides ending Barcelona's cup defence this campaign, Ronaldo scored here to dethrone Barcelona as league champions last season — after also netting the winning header against Barcelona in the 2011 cup final.
While Ronaldo put on one of his most memorable performances since joining Madrid, Messi was totally neutralized as the opposing defence again surrounded him and his teammates never picked up the slack.
A victory in the cup for Madrid would go some way toward salvaging what could be Jose Mourinho's last season with the club, after seeing its defence of the Spanish league title stutter and crumble.
With another "clasico" looming on Saturday at Madrid in the league, that title is firmly in Barcelona's grasp as it is 12 points clear atop the standings, with Mourinho's team even further back.
That means Madrid can turn its attention to next Tuesday's Champions League match at Manchester United, following a 1-1 home draw in the first leg of their last-16 series.
Since being thrashed 5-0 in his first game in charge of Madrid in 2010, Mourinho has a record of four wins, six draws and six losses against Barcelona. And Madrid has come a long way with only one loss in their last seven contests.
For Barcelona, it was their worst defeat at the hands of its fierce rival since losing 4-1 in the Santiago Bernabeu in 2008.
Barca missing coach
Barcelona suffered the same problems it had against Milan, unable to convert its better share of possession into goals, while its defence again proved brittle as it allowed goals for the 12th straight match.
The two cup losses also indicate that Barcelona is sorely missing coach Tito Vilanova, who is still undergoing treatment in New York after having a second tumour in two years removed from his throat in December.
Barcelona, which was again led by assistant coach Jordi Roura, has five wins, three draws and three losses since mid-January.
Barcelona came out looking sharp, and Messi brought the first collective gasp from the vibrant Camp Nou crowd with a shot just outside the far post from a tight angle after Pedro Rodriguez set him up inside the box.
But Ronaldo put Madrid in front by earning a penalty on the break when defender Gerard Pique stretched to try and dispossess him of the ball and ended up tripping the Portugal forward in the area.
Ronaldo dispatched the spot kick into the lower left corner of the net to beat goalkeeper Jose Pinto before running and sliding on his knees at the corner flag to the ire of the home fans.
Barcelona started the second half strong as Sergio Busquets forced goalkeeper Diego Lopez into a diving save, but again it was Ronaldo and Madrid who caught Barcelona off-balance and doubled the lead.
After Barcelona lost the ball in another frustrated attempt to unlock Madrid's defence, two touch passes left Angel Di Maria streaking toward the other end. The Argentina international cut back to bring Carles Puyol to the turf before firing a shot that Pinto did well to block, but the rebound fell to Ronaldo to drive home with his left foot.
Varane then put the result beyond all doubt when he was left all alone to rise up and head Mesut Oezil's corner kick off the underside of the crossbar before Alba got Barcelona's consolation goal two minutes from time.
Sevilla hosts Atletico on Wednesday needing to overturn the 2-1 loss in their first to move on to the final.