Emmanuel Adebayor came off the bench to score on his home debut for Real Madrid and put the icing on a 3-0 aggregate win over holders Sevilla that set up a mouthwatering King's Cup final against Barcelona.
After Karim Benzema had scored the only goal in Seville in last week's first leg, Real's two German internationals combined to make the breakthrough against a feisty Sevilla late in the second half at a nervous Bernabeu.
Sami Khedira's superb pass sent Mesut Ozil clear in the 82nd minute and he rounded goalkeeper Javi Varas and finished cooly into the empty net.
Sevilla defender Sergio Sanchez was dismissed for a second yellow card in the 85th after a late tackle on new loan signing Adebayor, making his debut at the huge arena in central Madrid after joining from Manchester City last month.
The Togolese international had been on the pitch for around 10 minutes when he controlled a Lassana Diarra cross on his chest and volleyed past Varas from close range.
Real, seeking their first domestic Cup since 1993, and Barca, the 2009 winners, will meet in the April 20 final for the first time since 1990 when Barca won 2-0.
A second-string Barca had earlier completed a crushing 8-0 aggregate victory over Almeria, Adriano, Thiago Alcantara and Ibrahim Afellay scoring in a 3-0 win on the night.
After their 5-0 win at the Nou Camp in last week's first leg, Barca coach Pep Guardiola left World Player of the Year Lionel Messi and five Spanish World Cup winners out of his starting 11 but the 2009 winners still had far too much quality.
Almeria, second from bottom in the league, came close to scoring just before the half hour when French midfielder Sofiane Feghouli, who joined on loan from Valencia in the January transfer window, smashed a low shot off the post.
The Andalusian club, who had made the last four for the first time, then conceded a soft goal to Barca left back Adriano in the 35th minute to effectively end any faint hopes of a comeback.
Teenage B team midfielder Thiago Alcantara underlined his potential with a fine header to make it 2-0 in the 56th before Netherlands international Ibrahim Afellay netted his first goal for the club since joining last month from PSV Eindhoven.