The home of Welsh rugby hosted the biggest game in club football, with an estimated global audience of 200 million watching on, and the 90 minutes didn’t disappoint as Real sealed their 12th European crown.
Ronaldo was the star man once again, scoring in either half with a deflected Casemiro shot sandwiched in between the 32-year-old’s two strikes. Substitute Marco Asensio added a fourth in stoppage time.
Ronaldo’s first – which made him only the second player to score in three different European finals – was cancelled out by Mario Mandzukic’s wonder strike for Juventus.
But his effort was rendered meaningless as substitute Juan Cuadrado saw red late on for the Italian giants to leave Real to start the party.
With Wales hero and Cardiff product Gareth Bale left on the Madrid bench after injury trouble, Real boss Zinedine Zidane opted for Isco and Ronaldo alongside striker Karim Benzema.
Juventus started the better of the two sides, former Real forward Gonzalo Higuain twice testing Keylor Navas, while Miralem Pjanic also worked the Costa Rican stopper.
Paula Dybala, who had earlier pulled off a sensational back-heeled nutmeg which left the Cardiff crowd gasping, then became the first player to be booked and soon after Real moved ahead.
Juventus goalkeeper Gianluigi Buffon, who had been redundant up till that point, picked the ball out of his net in the 20th minute after Ronaldo converted his 41st goal of the season.
It was a devastating counterattack, the Portuguese linking with his right back Dani Carvajal and slotting into the bottom corner.
It came against the run of play, but Juventus were soon back level in the most dramatic fashion.
When the ball fell for Mandzukic inside the Real box with his back to goal, there looked little on, but the Croatian’s acrobatic scissor kick was too much for Navas as it sailed into the back of the net.
It was a strike fit to grace any game, let alone a Champions League final, and summed up an encounter which saw two classy teams on show.
The audacity of Mandzukic’s strike left the 66,000 crowd momentarily stunned and an end-to-end first half came to a conclusion with Real defenders Sergio Ramos and Carvajal both receiving yellow cards and Casemiro dragging a shot wide of Buffon’s goal from the edge of the box.
As the opening 45 minutes had ended, the second began at a helter-skelter rate. Isco’s run on goal was ended by Andrea Barzagli, and Luka Modric’s left-footed effort was held by Buffon.
Despite Toni Kroos becoming the next to see yellow, Real were dominating the ball with the excellent Modric setting the tempo in midfield. Although they failed to create many clear-cut chances, their possession was rewarded.
After Benzema had a shot blocked, the ball fell to Casemiro who tried his luck from 30 yards. How he benefitted, the ball deflecting off Sami Khedira and past the helpless Buffon.
The goal sent the Real fans wild, and it soon got even better.
Just three minutes later, Ronaldo’s second put the game beyond Juventus and it was a simple goal the Italians could and should have prevented.
Modric got to the byline, but Ronaldo was given too much space inside the six-yard box and flicked the ball past Buffon. Real’s celebrations told you they thought it meant the game was won.
Juventus boss Massimiliano Allegri immediately introduced Cuadrado for Barzagli to look for a response, but there was only one team dominating the game.
Marchisio was the next new Juventus face to enter the fray, but with a two-goal lead, Real had the upper hand. Bale was finally given his chance on home soil in the 77th minute, replacing Benzema to an almighty cheer, and he came close to scoring when he nearly connected with Ronaldo’s cross.
In the end, the Welshman’s failure to score mattered little and when Cuadrado saw red for two soft yellow cards – the second coming following a clash with Ramos – Real were left to ease home.
Asensio – who had replaced Isco – put the gloss on victory in the final minute of the regulation 90.