Real opened the scoring through Sergio Ramos and looked in control throughout the first-half, restricting their opponents to half-chances.
Antoine Griezmann squandered afz chance to level the game three minutes after the restart when he rifled his penalty against the crossbar,
Moments after Gareth Bale had an effort cleared off the line, Yannick Ferreira Carrasco sent the game into extra-time after he levelled from close-range.
Cristiano Ronaldo stepped up and struck the winning penalty after Juanfran missed the only penalty of the shoot-out.
It was the white half of Madrid that were in jubilation two seasons ago when both sides met in the Champions League final, but Atleti were looking for revenge.
Real take the lead through Ramos
An early chance fell Koke’s way, but rolled straight into the arms of Keylor Navas, but it was Real who were unfortunate not to go ahead under a minute later.
Bale’s powerful free-kick was helped on its way by Casemiro, who was inside the six-yard box, but Jan Oblak produced a superb point-blank save.
Real, by far, settled the quickest in the game and they eventually made one of the chances count on 15 minutes after a needless free-kick was given away.
Atletico restricted in first-half
Bale flicked on Kroos’ delivery superbly, and that allowed Ramos, who scored the equaliser two seasons ago, to latch on and help the ball past Oblak.
Griezmann fired an effort straight at Navas just after the half-hour mark, and missed two other chances, but Atletico failed to come up with anything substantial all half.
Real looked thoroughly in control throughout the opening 45 minutes, but their opponents came out from the break and had a chance immediately to get back level.
Griezmann squanders penalty moments after half-time
Fernando Torres was brought down by Pepe in the area, but Griezmann rifled the penalty off the crossbar and Atletico’s chance had gone to Diego Simeone’s despair.
Another great chance fell their way six minutes later, Stefan Savic could only prod wide though after Diego Godin headed across the box.
A brilliant start to the half started to die down after Real started to regain control of half, and it was Zinedine Zidane’s side that started to look more likely to score.
A ruthless counter-attack saw Luka Modric play Karim Benzema through, and after the Frenchman drove at goal, he squandered the chance as he hit straight at Oblak.
Real’s biggest chance of the second-half came on 78 minutes when Ronaldo’s shot was saved, but parried away into the path of Bale.
Carrasco levels moments after Madrid go close
The Welshman took the ball round the charging keeper and fired at goal, but Savic, who was among three other players covering back, cleared the effort off the line.
Zidane’s side were made to rue that missed chance as their opponents went on to find the equaliser that they thoroughly deserved after they turned their performance around from the break.
Juanfran played a lobbed pass across the box and substitute Carrasco, who replaced Augusto Fernandez at half-time, rifled home from close-range.
Bale’s header was the final chance in normal time, but Real’s chance to go ahead disappeared after Pepe headed the goal-bound effort over the bar.
Extra-time passes and game heads to penalties
The game headed into extra-time, but the only chance of the first period of that fell to Ronaldo, who didn’t connect well with a header, which bounced off his knee and into the arms of Oblak.
Apart from the blocked free-kick from Ronaldo, neither side managed to create an opening and the game headed to penalties after the sides couldn’t be separated in 120 minutes.
After seven clinically taken penalties, a nervous Juanfran stepped up and hit the post, which allowed Ronaldo the chance to step up and seal the victory.
The Portuguese superstar did exactly that, sending the keeper the wrong way, and Madrid clinched their 11th Champions League title in the process.