Arsenal produced a performance of resilience and desire to send Real Madrid out of the Champions League.
Ronaldo shows the strain as Arsenal steam through against Real Madrid
Arsene Wenger's side defended the advantage Thierry Henry gave them at the Bernabeu with discipline to deservedly reach the last eight.
Jose Antonio Reyes struck the woodwork for Arsenal in the first-half and Henry almost struck after the break.
Raul hit a post as Arsenal battled, and keeper Jens Lehmann saved well from Robinho in the dying seconds.
Ronaldo was restored to Real's starting line-up after being dropped for the derby against Atletico Madrid - and almost marked his return with a goal after only two minutes.
Former Everton midfield man Thomas Gravesen picked out the Brazilian at the far post, but his downward header was scrambled to safety by Lehmann.
But Arsenal carried the greater threat in the first 45 minutes, and Cesc Fabregas was denied by a brave clearance from Michael Salgado after 18 minutes.
And Reyes, who had wasted a good chance early on, was guilty again three minutes before the interval as Arsenal looked certain to take the lead.
Henry was the creator after robbing Sergio Ramos, setting up Reyes, who hit the bar from point-blank range with only Iker Casillas to beat.
England captain David Beckham almost broke the deadlock unwittingly after 53 minutes when he over-hit a free-kick and almost caught Lehmann off his line.
And as Real stepped up the pace, Beckham nearly stole in on the end of Raul's pass, only to be denied by desperate defending.
Arsenal had an amazing escape on the hour, when Raul hit the post with a stunning first-time shot, and was then denied by a brilliant reaction stop from the grounded Lehmann.
Alexander Hleb fired wide as the tension grew, with both sides knowing the first goal would prove crucial.
And Real made a change after 68 minutes, sending on Julio Baptista for the injured Gravesen.
Henry almost sealed the tie with 17 minutes left, but Casillas produced a stunning finger-tip save to keep Real's hopes alive.
Another moment of Henry brilliance troubled Real again, but this time he was off target.
Philippe Senderos gave Arsenal a heart-stopping moment with only two minutes left when he sliced a clearance narrowly over his own bar.
But Arsenal almost struck from the corner, with keeper Casillas in Arsenal's penalty area, Robert Pires shot from the half-way line, but Robert Carlos raced back to clear off the line.
Arsenal: Lehmann, Eboue, Toure, Senderos, Flamini, Hleb (Bergkamp 86), Silva, Fabregas, Reyes (Pires 68), Henry, Ljungberg.
Subs Not Used: Almunia, Diaby, Song Billong, Walcott, Djourou.
Real Madrid: Casillas, Salgado (Robinho 84), Sergio, Bravo, Carlos, Beckham, Guti, Gravesen (Julio Baptista 67), Zidane, Raul (Cassano 73), Ronaldo.
Subs Not Used: Diego, Helguera, Cicinho, Diogo.
Booked: Guti, Carlos, Gravesen, Bravo.
Ref: M Lubos (Slovakia).