Morata, who moved from Real to Juventus last summer, tapped home the rebound from a Tevez strike on eight minutes to send Juventus Stadium into raptures.
The hosts were pegged back just before the half-hour thanks to Cristiano Ronaldo’s 76th goal in the competition, a simple header that beat Gianluigi Buffon from close range.
But the Turin giants were back in front when Tevez beat Iker Casillas from the penalty spot on 57 minutes after he was felled in the area.
Real host Juventus on May 13 when they will look to make their precious away goal count as they bid to secure a second consecutive final.
However Juve, who last appeared in the last four in 2003 when they were beaten by AC Milan in the final, will feel confident of causing an upset against the record 10-time and defending champions.
“I would have signed for that result at the start of the match,” said Juve coach Massimiliano Allegri.
Morata, meanwhile, told Sky Sport: “We will have to play the perfect game at the Bernabeu. Above all, we have to believe we’ve done nothing yet.”
Allegri opted for a 4-3-1-2 formation with Morata beating Spanish compatriot Fernando Llorente to the second striker’s spot alongside Tevez.
It proved a judicious choice. Juve raced out of the traps and after just eight minutes Morata sent the stadium wild with a simple tap-in after Casillas pushed Tevez’s drive into his path at the back post.
Given he spent several years at the Santiago Bernabeu, claiming a winners’ medal from last year’s competition, Morata kept his celebrations to himself.
It was the dream start for the hosts and for the first 26 minutes Real struggled to find their rhythm.
The visitors’ best chance of the game thus far was a 30-metre piledriver from Toni Kroos that Gianluigi Buffon pushed to safety.
However, a lapse of concentration from Juve proved costly, James Rodriguez doing great while under pressure to the right of goal to lob over a cross which found Ronaldo somehow unmarked a metre out to nod past Buffon for a 27th minute equaliser.
The goal literally silenced the crowd, but the Bianconeri were far from beaten.
Juve took back control after the half hour, Pirlo stopping a Real counter to help set up Tevez for Claudio Marchisio to test Casillas with a daisycutter from 20 metres that shaved the upright.
Yet Real’s threat was ever-present. Minutes before the interval James saw his diving header from Isco’s delivery on the left smack off the crossbar. As Buffon scrambled to get back into position the follow-up went just over.
Real, however, paid the price for pushing up the park and packing the Juve area at a corner 13 minutes after the restart.
When Marcelo’s drive was charged down it sparked a counter-attack by Tevez and Morata, the latter winning a penalty after tumbling under contact from Raphael Varane.
Tevez stepped up to slam the ball past Casillas on 57 minutes to electrify the stadium once again.
The hosts continued to threaten, prompting Carlo Ancelotti to replace Isco with Javier Hernandez and a three-forward set-up. Minutes later, Allegri brought a tactical change of his own, defender Andrea Barzagli coming in for left-sided midfielder Stefano Sturaro.
Real finally got into their stride but by this time Juve were switching from a 3-5-2 to a 5-3-2 when required, stopping an increasingly potent Real tide at every turn.
Allegri replaced Morata towards the end with Llorente, and the big Spaniard was unlucky on two occasions.
Llorente’s pace took him past Casillas after the keeper ran out to clear, but there were no takers from his cutback deep on the right byeline.
Llorente came close again at the death when he connected with a free kick on the left only for Casillas to scramble and collect.