The Italians had to come from behind to secure their progress in the Bernabeu as Cristiano Ronaldo converted a 23rd-minute penalty to put Real ahead on away goals.
But Morata – a Real academy graduate who swapped Madrid for Turin last summer – came back to haunt his former side with a 57th-minute strike to secure a 1-1 draw on the night and book Juve’s place in the final in Berlin on June 6.
It will be Juve’s first appearance in the showpiece since 2003, when they were beaten on penalties by an AC Milan side managed by Carlo Ancelotti.
Real, meanwhile, now look set to end the season without any silverware after their hopes of retaining the Champions League were dashed by a gutsy visiting display.
With the tie well poised at 2-1 after the first leg, both teams made one notable change to their starting line-up; Real recalling Karim Benzema and Juve handing a start to Paul Pogba.
Benzema was soon involved in a fast-paced start to the match as he slashed a shot into the stands from a good position in the sixth minute before Arturo Vidal forced Iker Casillas into a full-stretch save at the other end.
But it was Real who looked the more dangerous and, after Benzema cut back just behind Ronaldo and Gianluigi Buffon saved a long-range shot from Gareth Bale, the hosts took the lead in the 23rd minute.
Giorgio Chiellini committed a clumsy foul on James Rodriguez and Ronaldo, whose penalty miss at the weekend against Valencia proved costly, fired straight down the middle.
The goal moved Ronaldo up to joint-second on Real Madrid’s all-time scoring list, alongside Alfredo di Stefano, with 307 goals and he could have edged ahead had he not opted to unselfishly pass across goal rather than shoot from a good position.
The Portuguese then shot into the side-netting from Bale’s pass over the defence before Buffon got down sharply to save an effort from Benzema at his near post.
Real’s failure to get a second goal would prove costly as Juve stemmed the tide after the break.
They also got the all-important away goal just before the hour mark when Madrid failed to fully clear Andrea Pirlo’s free-kick and Morata was on hand to fire home from Pogba’s header.
Bale spurned an excellent chance to make it 2-1 five minutes later as Marcelo stormed down the left and his low cross was sliced wide by the Welshman at the near post.
Iker Casillas kept Madrid in the tie as he spread himself to make a fine save from Claudio Marchisio as the game raged from end to end.
Bale wasted another good opportunity as he headed over from Ronaldo’s cross before Casillas denied Juventus victory on the night by getting strong hands to Pogba’s drive.
But their captain’s efforts were in vain as Real’s final realistic hopes of winning a major trophy this season disappeared and Juventus progressed to their eighth European Cup final.