Jesé Rodriguez got the only goal of the game after just eight minutes as he confidently slotted home Xabi Alonso's ball over the top of the Espanyol defence.
Espanyol keeper Kiko Casilla managed to keep the score down as he frustrated Cristiano Ronaldo on a number of occasions.
However, it was to no avail as the visitors couldn't find a way through and ended with 10 men after Victor Sanchez was sent off late on for two bookable offences.
Real will now face Atletico Madrid or Athletic Bilbao in the last four with city rivals Atletico taking a 1-0 advantage into their second leg against the Basques on Wednesday.
Real boss Carlo Ancelotti had insisted at his pre-match press conference that, despite leading 1-0 from the first leg, he would name his strongest available side.
However, he made seven changes from the side that started the 2-0 win over Granada at the weekend with the injured Gareth Bale one of those to drop out.
The change in personnel didn't affect the hosts in the early stages, though, as Jesé fired them in front after being found by a fine long-range ball by Alonso.
Casilla could have done better on the goal, but he more than redeemed himself for the rest of the half as he made a series of saves, most notably from Ronaldo and Angel di Maria.
The visitors began to provide a threat of their own towards the end of the half and Pizzi was unlucky to see his sweetly-struck volley fly over the bar a minute before the break.
Casilla denied Ronaldo once more with another excellent stop at the beginning of the second period.
However, it was his almost namesake Iker Casillas who made the headlines in the second half as he broke a club record by passing 11 hours of football without conceding a goal.
And any doubt over the result of the tie was ended when Sanchez was shown a second yellow card for handball 13 minutes from time.