Real Madrid will play Juventus in the final of the 2016-17 Champions League after a 2-1 win over Atletico Madrid in their second leg.
They overcame city rivals Atletico 4-2 on aggregate to set up a repeat of the 1998 final which Real edged Juve by a 1-0 scoreline.
Atletico, who had suffered painful defeats to Real in the 2014 and 2016 finals, raced two goals up in the second leg to give themselves a chance of overturning a 3-0 deficit.
Midfielder Saul Niguez, who had left Real's academy for Atletico aged 14, headed in Atletico's opener after 12 minutes of action.
And just four minutes later, Fernando Torres was fouled in the box by Raphael Varane and Antoine Griezmann scored the resulting penalty.
One more goal would have put Atletico level in the tie and on course for a comeback of Barcelona-PSG proportions.
But Real pegged it back to 2-1 on the night, meaning the hosts needed to score three more times to go through.
Three minutes before half time, Karim Benzema played a ball in from the left after good work, resulting in a Toni Kroos shot that was well saved by Atleti keeper Jan Oblak.
But Real attacking midfielder Isco was on hand to tap in the rebound, taking the sting out of the game and stopping Atletico's momentum in the last Champions League match at their Vicente Calderon stadium before they move to the Wanda Metropolitano stadium for next season.
Download the brand new OffTheBall App in the Play Store & App Store right now! We've got you covered!
Subscribe to OffTheBall's YouTube channel for more videos, like us on Facebook or follow us on Twitter for the latest sporting news and content.