Real Madrid were made to work for their place in the Champions League quarter-finals, edging past RB Leipzig 2-1 on aggregate after a 1-1 draw in their second leg.
RB Leipzig were arguably the better side and missed several gilt-edged chances, registering 20 shots to Real Madrid's 11.
But Carlo Ancelotti's side increased the tempo in the second half and ultimately did enough to secure qualification for the next round.
Bidding for a record-extending 15th Champions League title, Real took the lead thanks to a Vinicius Junior's strike from a counter-attack in the 65th minute.
But Leipzig's Willi Orban levelled three minutes later with a header to set up a tense finale that included a strike that hit the crossbar by Dani Olmo.
Even though Real have a formidable record in Europe - having been knocked out in the round of 16 only twice in the past 14 years while winning the title five times during that period - they began rather cagily.
Leipzig kept threatening to score, with Orban missing twice in the second half after shooting wide.
In the second half, Rodrygo replaced Eduardo Camavinga and suddenly Real were playing with more purpose.
Real appeared to have put the tie to bed when Toni Kroos stole the ball and fed Jude Bellingham at the halfway line, who took the ball up the Leipzig box.
He slipped a pass to Vinicius, who had cut in from the left into the centre circle before rifling a shot into the left-hand corner.
That goal only seemed to fire up Leipzig, who equalised within three minutes when Orban got in front of Nacho to score with a stooping header from a cross by David Raum.
In a final 20 minutes in which several yellow cards were handed out, Real were playing with fire and were under repeated pressure in their own box with
Read on m.allfootballapp.com