Carlo Ancelotti’s men found themselves in the unusual position of fretting about conceding away goals given Segunda Division B side had Xativa ground out a surprise goalless draw at La Murta two weeks ago.
But Real’s defenders would do their jobs in the capital and, at the other end of the pitch, Asier Illarramendi opened the scoring before Angel Di Maria’s 28th-minute penalty set up a meeting with Osasuna.
Across the city, holders Atletico Madrid left it worryingly late to come from behind and beat Sant Andreu 2-1.
Carroza stunned the Vicente Calderon by opening the scoring in the 14th minute and Atletico struggled to respond until goals from Hector Hernandez and Toby Alderweireld spared them from embarrassment.
They will face either Gimnastic or Valencia in the next round after completing a 6-1 aggregate victory.
Third-tier Racing Santander won 2-0 at Sevilla and dumped the Primera Division side out of the cup. The Andalusians won 1-0 in the first leg but failed to kill the tie off at the Ramon Sanchez Pizjuan. Miguelez scored from the spot in the 63rd minute and, with Sevilla struggling to respond, Mamadou Kone won it for Racing at the death.
It was not exactly plain sailing for Seville’s second La Liga club, Real Betis, as Lleida forced a 2-2 draw at the Benito Villamarin.
Paulao and Antonio Amaya gave Betis a healthy half-time lead but Javier Monforte and Jaime Mata pegged Juan Carlos Garrido’s men back to come within a goal of creating an upset. The aggregate score remained 4-3 in Betis’ favour at full-time, however.
Real Sociedad were held 1-1 at Algeciras two weeks ago and made amends at Anoeta by scoring four goals without reply to book a 5-1 aggregate win.
Javi Ros, Haris Seferovic, Antoine Griezmann and Carlos Vela all bagged to send the Andalusian minnows home with little to be cheerful about.
Elsewhere, Las Palmas held Almeria to a goalless draw at the Juegos Mediterraneos, but a 3-1 first-leg win was enough to send the mainlanders through to the next round.