Barcelona dealt Real Madrid another body blow when they survived a stirring fightback from their arch rivals to draw 2-2 in an action-packed King's Cup quarter-final second leg on Wednesday and send the holders out 4-3 on aggregate.
Fullback Daniel Alves looked to have settled the tie when he blasted a spectacular second in first-half added time, running on to a loose ball and sending a thunderous drive past Real goalkeeper Iker Casillas into the top corner.
Barca appeared to be in total control and they dominated possession at the start of the second half but Real rallied and mounted a rousing late fightback that left them needing just one more goal to advance.
Cristiano Ronaldo, who scored the extra-time winner when Real beat Barca 1-0 in last year's Cup final, sped on to Mesut Ozil's pass and finished past Jose Manuel Pinto just over 20 minutes from time and Barca were reeling when substitute Karim Benzema levelled four minutes later.
Both sides had chances in the frenetic final stages before Real centre back Sergio Ramos was sent off for a second yellow card and Barca then ran down the clock to set up a semi-final against Valencia or Levante, who meet on Thursday.
"The players played a good game," a subdued Real boss Jose Mourinho said.
Real had played well in the first half and did not deserve to be two behind at the break, he said, adding that he had told his players he wanted more of the same in the second period.
"Before the game we came here with the hope and the motivation of winning," he said.
"If you want I will congratulate Barcelona for the win last week. I am happy to do that as they deserved to win."
Abidal grabs Cup winner for Barcelona at Real
Real and Barca made to work, delight for Inter
La-Liga: Tiger Falcao feasts on Real Sociedad
Real Madrid's Ramos drops King's Cup under a bus
Watch Wow! Nicole Kidman, Freida Pinto Etc on the Red Carpet