An away goal by Alvaro Morata helped the visitors equalise 1-1 with Real and progress to the final on a 3-2 aggregate.
Juventus, who were leading 2-1 from the first leg, were put on a back foot in the first half after Cristiano Ronaldo scored from the penalty spot. Ronaldo’s goal had put the hosts ahead on away goals.
However, Alvaro Morata, who left Madrid for the Italian champions last July, scored the decisive goal in the 57th minute. The win meant that Juventus will now play in the final after a gap of 12 years.
The Turin club last won the trophy in 1996.
The loss for Real Madrid has meant that the defending European champions will certainly end without a major trophy.
It was yet another disappointing night for Real’s Gareth Bale who has not struck any form during the entire season.
Speaking after the match, Real defender Sergio Ramos said that his team didn't score enough goals and wasn’t efficient in front of a goal.
“After the first goal we thought it was done. We have to congratulate them. They have gone through because they have done things better,” he said.