MADRID: Cristiano Ronaldo’s 97th-minute penalty sent Real Madrid to the Champions League semi-finals in dramatic fashion after the holders conceded a three-goal first-leg led in the return in front of their own fans to battling Juventus.

The Italian champions’ veteran goalkeeper Gianluigu Buffon was sent off by English referee Michael Oliver in the stormy climax to a tie which saw Madrid advance 4-3 on aggregate after a 3-1 loss on the night.

In the night’s other tie Bayern Munich progressed 2-1 on aggregate after being held goalless at home by Sevilla.

In Madrid referee Oliver awarded the 12-times European champions a penalty with the tie seemingly heading for extra-time after Medhi Benatia knocked over Lucas Vazquez. Buffon was sent off for protesting on his last Champions League appearance. Ronaldo stepped up to beat substitute keeper Wojciech Szczesny.

The remarkable first half saw Mario Mandzukic score with two far-post headers from right-wing crosses as Juventus looked to become the second Italian side in consecutive nights to overturn a three-goal deficit, following Roma’s dramatic comeback against Barcelona.

Blaise Matuidi brought Juventus level in the tie after capitalising on Keylor Navas’ error in the 61st minute, before the late drama at the Bernabeu.

Juve struck after only two minutes as Mandzukic headed home at the far post from Sami Khedira’s deft cross.

Navas blocked the ball at the feet of Gonzalo Higuain shortly after, before Gareth Bale’s intuitive back-heel hit the side-netting at the other end.

Isco had a goal correctly disallowed for offside soon after as Real pushed for a killer fourth goal in the tie, with Buffon blocking well at his near post from Isco soon before Juventus’ second.

It came through Mandzukic, who had replaced Juve’s talismanic suspended forward Paulo Dybala for the second leg, with eight minutes of the half remaining, again nodding in at the far post as substitute Stephan Lichtsteiner found him from deep.

Real nearly made it 4-2 on aggregate before the break through Raphael Varane, but his header thundered off the bar, while after the interval Matuidi made the most of Navas’ fumble from close range to bundle the ball over the line for an unprecedented leveller.

Real missed several chances to take the lead in the tie through Isco, Varane and Ronaldo, before the late drama to cap off a quite unbelievable game of football.

Ronaldo leapt highest to head the ball down for Vazquez in the area, before the substitute was pushed in the back by Benatia. Referee Oliver waited, before pointing to the spot; cue pandemonium among Real players and anger from Juve in equal measure.

Buffon was shown a straight red for his protests, and they continued for another four minutes before Ronaldo struck into the top corner past Szczesny to win it for the hosts.