Real Madrid are in the Champions League semi-finals for the eighth year in a row. That is no surprise but what is a surprise is that for so much of a dramatic, nervous night at the Bernabéu it looked like they might not be.

A round of shocks almost had the biggest of them all, a miracle mighty close, the champions following Barcelona in being knocked out by Italian opposition. In Turin they had been applauded, Cristiano Ronaldo holding his heart in gratitude after his superb goal was handed an ovation; at the Bernabéu there were hands on hearts too, in agony, right to the end. And then Ronaldo appeared once more.

‘Referee has a rubbish bin where his heart should be,’ says Gianluigi Buffon Read more

Juventus took Madrid to the cliff edge with a 3-0 lead with two from Mario Mandzukic and one from Blaise Matuidi. Until, into the third minute of added time, Lucas Vázquez went down under a challenge from Medhi Benatia. The referee, Michael Oliver, pointed to the spot. As Juventus’s players surrounded him, seeing hope slip away, screaming injustice, Gigi Buffon was sent off, his last European game ending with him walking from the field, angry and unmoved by the ovation.

And so a place in the semi-finals came down a penalty: the world watching, Ronaldo waiting, substitute goalkeeper Wojciech Szczesny eventually standing before him. One shot. It flew high into the net, Ronaldo raced to the corner flag, throwing his shirt in the air, the stadium erupting, barely able to believe it. Juventus couldn’t, either. The roar was delight and relief.

Fear had visited Madrid fans early, a realisation there was a game on, one they had never anticipated, despite the warnings. It never really let go. Douglas Costa played in Sami Khedira, running in on the right, and he clipped the cross to the far post where Mandzukic arrived and headed in the opener. The clock said 1:16: it was the quickest goal Madrid had conceded in this competition and it was just the start. An hour and a half later, this had still not been resolved: a tie that had appeared over a week ago was not yet done.

Less than 30 seconds after the goal, Juventus were back: the celebration high in the north end had barely subsided and the rallying call from the rest of the ground had hardly been raised when Gonzalo Higuaín was there, deep inside the area. He was slow, the shot scuffed and the chance wasted, but the storm had not passed. Mattia De Sciglio delivered two crosses in a minute and then Costa, who tore into them throughout, raced into the area, forcing Keylor Navas to dive at Higuaín’s feet.

Facebook Twitter Pinterest Cristiano Ronaldo displays nerves of steel to drill his added-time penalty into the top corner past the despairing dive of Wojciech Szczesny. Photograph: Denis Doyle - UEFA/UEFA via Getty Images

All this had happened inside seven minutes and although Gareth Bale forced a save from Buffon two minutes later, Dani Carvajal then bursting through and Isco having one ruled out for offside, the ordeal continued. Carvajal had to clear Mandzukic’s delivery and the resulting corner went through to the Croat, bouncing off his shins and into Navas’s hands from five yards. This was relentless; it was also only 15 minutes in and yet there could have been three or four already.

Still the chances came at both ends. Higuaín shot over, Toni Kroos was blocked and Isco curled wide. Madrid had wrested some control, a little breathing room. Or so it seemed. A minute after Buffon was out to save from Isco, Juventus got the second. De Sciglio had been forced off but the supply from the right was not cut. Stephan Lichtsteiner this time curled to Mandzukic to head home. At the other end, Raphaël Varane’s header thumped back off the bar on the stroke of half‑time.

As the players departed, so Vázquez and Asensio came out to warm up. “I had to change something,” Zinedine Zidane, the Madrid manager, said. But Juventus continued on the front foot, led by Costa, immediately curling over.

Facebook Twitter Pinterest Mario Mandzukic heads the opening goal past Keylor Navas to launch Juventus’s remarkable fightback. Photograph: Pixathlon/Rex/Shutterstock

Juventus were one goal from extra time and on the hour they got it, when Navas dropped a long, deep and largely inoffensive cross at the feet of Blaise Matuidi, who scrambled it over the line.

Bayern Munich reach semi-finals after goalless draw with 10-man Sevilla Read more

Level on aggregate and away goals too, the psychological and tactical advantage was Juve’s. That situation also created doubts, though: they had something to lose now and a decision to make: look for the goal now or later? Madrid, in part, shared that: 20 minutes now, or 30 minutes later? With each passing minute, that question became more pertinent, the balance tilting towards extra time, the margins finer and the risks greater. If, that is, they could even choose. Max Allegri, Juve’s manager, later implied he preferred the security of 30, but in the end he never got it.

Ronaldo’s deflected shot squeezed wide, Jesús Vallejo blocked Khedira, Buffon scrambled to save from Isco and Ronaldo shot just wide, then headed over with five minutes left. This was not over but there would be less time left than anyone thought. When Vázquez went over in the last minute, the whole match, 180 extraordinary minutes, was reduced to one moment.

Time passed, tension grew, a simple end for a chaotic occasion. “My heart rate went up but I calmed myself because I knew it would be decisive,” Ronaldo said. On a night of nerves, he showed none.