Barca and Real on course for final
Real won a controversial game 1-0 at holders Sevilla thanks to a goal from Karim Benzema while Lionel Messi struck twice as 2009 winners Barca thumped Almeria 5-0 at the Nou Camp.
The wealthy pair have carried their domination of La Liga into the King's Cup and if they advance after next Wednesday's second legs will meet in the final on April 20, a few days after they play each other in the league at Real's Bernabeu stadium.
Sevilla had a goal disallowed in a match littered with yellow cards at a rowdy Sanchez Pizjuan stadium in the Andalucian capital.
Real goalkeeper Iker Casillas was also hit on the back of the head by a missile thrown from the crowd after the final whistle but was not seriously hurt.
Benzema, who scored his second league goal of the season on Sunday, put Real ahead in the 17th minute.
The France striker exchanged passes with Mesut Ozil, drove into the penalty area and beat two defenders before firing a low shot past goalkeeper Andres Palop.
Sevilla thought they were level moments before half-time when Luis Fabiano rounded Casillas and sent the ball towards the empty net.
Raul Albiol slid in with a last-ditch block but television replays seemed to show the ball had crossed the line before the Spain defender kicked it away.
"It all happened very quickly," Albiol told reporters. "I threw myself to the ground and I saw the ball on the line. For me it did not cross."
The passion of Sevilla's players was not matched by their ability to create scoring chances and it was Real who almost snatched a second with just over 10 minutes left.
Ozil broke clear and fed Cristiano Ronaldo who rounded Palop but was unable to get in a shot and Ozil's eventual effort was blocked by Alexis Ruano.
Substitute and former Real player Alvaro Negredo volleyed narrowly wide for Sevilla late on but Jose Mourinho's side held on and will be confident of progressing to the final as they bid for a first King's Cup since 1993.
"Some vandal chucked a bottle of water," Casillas said in a television interview. "It's a shame as the fans were splendid helping their team and then some idiot caused a problem."
At the Nou Camp, Barca were out of sight by the 30th minute when Pedro netted their fourth of the night.
World Player of the Year Messi had opened the scoring in the ninth minute, Spain striker David Villa added a second two minutes later and Messi a third in the 16th.
Barca won 8-0 at Almeria earlier in the season and a repeat of that drubbling looked on the cards.
However the Andalucian club, in the last four for the first time, held the league leaders at bay until the 88th minute when substitute Seydou Keita ran on to Messi's pass and stroked the ball past Esteban.