Juventus defender Dani Alves scored a stunning volleyed goal in a 2-1 win over Monaco that took the Italians into their second Champions League final in three years.
Juventus, who ran out 4-1 aggregate winners, will face either Real Madrid or Atletico Madrid, who meet in the other semi-final at the Vicente Calderon Stadium tomorrow with Real leading 3-0.
The final is in Cardiff on June 3.
Brazilian Alves provided the cross for Mario Mandzukic to score the first goal in the semi-final, second leg and then added the second himself with an explosive strike to effectively finish off the tie by half-time.
Juventus, who had won the first leg 2-0, were coasting until Kylian Mbappe pulled one back in the 69th minute, ending a run of six successive clean sheets in the competition for the Serie A side and veteran goalkeeper Gianluigi Buffon.
Tempers then flared when Monaco defender Kamil Glik appeared to stamp on Juve forward Gonzalo Higuain, although the referee took no action against the Pole, leading to a bad-tempered final 20 minutes.
Monaco started brightly as they began the thankless task of trying to breach the Juve defence and the home side's 39-year-old keeper Buffon flapped at Bernardo Silva's cross in the first minute, although nobody was on hand to take advantage.
Monaco striker Mbappe then hit the inside of the post from a narrow angle, though he was flagged offside, and Radamel Falcao drove over from long range as the visitors pressed forward.
But Juventus always seemed to have too much guile for the visitors and Higuain had already squandered one chance, with a failed attempt to dink the ball over Danijel Subasic, before Mandzukic put them ahead after 33 minutes.
The move started with Alex Sandro breaking out of defence to charge 50 metres down the left and the ball eventually found Alves who lofted a high ball over from the right.
Mandzukic's header was brilliantly saved by Subasic but the keeper could do nothing as his fellow Croat fired home the rebound.
Both teams had further chances as the game ebbed and flowed but Juve were sharper in attack and struck again just before halftime.
Alves, who in the previous attack had played in Paulo Dybala with a precision pass, met Subasic's punched clearance with a full-blooded volley from 25 metres and the ball flew into the net with the goalkeeper out of position.
Juventus were able to drop the pace in the second half until Joao Moutinho slipped along the touchline and fed the ball for Mbappe to score from close range.