Gonzalo Higuaín scored in each half as Juventus took a significant stride towards their second UEFA Champions League final in three years with another faultless display at Monaco.
Juventus had conceded just twice in this season's competition – and not at all in the knockout stage – but Monaco were the first to threaten, 18-year-old Kylian Mbappé twice foiled by Gianluigi Buffon, 21 years his senior.
At the other end, Higuaín flashed a volley across goal, yet Monaco failed to heed the warning. Minutes later the Argentinian's clever pass set Dani Alves away down the right, and his improvised back-heel returned the ball for Higuaín to supply an assured low finish.
Monaco came out positively after the break, with Buffon down smartly to deny Radamel Falcao and then saving at the feet of Mbappé. Juve, however, came closer to the second goal as Monaco failed to clear their lines, leaving Claudio Marchisio to bear down on goal; only a smart Danijel Subašić stop kept the hosts in touch.
The reprieve was brief as Paulo Dybala released Alves down the right; once more the delivery was perfect, a deep cross inviting Higuaín to volley in from close range. Valère Germain's late header was tipped over by Buffon as Monaco sought a response but Juve held on for a fifth clean sheet in as many games in this season's knockout rounds.
Juventus celebrate Gonzalo Higuaín's second goal
Key player: Gonzalo Higuaín (Juventus)
Higuaín has often quoted another famous striker, Ruud van Nistelrooy: "During a period where I didn't score, he used to tell me that goals are like ketchup. You try, but it doesn't come out. And when it comes out, it all does at once." The Argentinian had only ever scored two goals in the UEFA Champions League knockout stage before tonight's match. Yet he broke the deadlock on 29 minutes and half an hour later he had his second, doubling his knockout tally and marking this semi-final with two big dollops of ketchup.
Tactical tinkering suits Dani Alves
Rumours of a surprise in Juve's line-up began this afternoon and were confirmed when the starting XI was announced. Massimiliano Allegri went for the tried-and-tested Andrea Barzagli in defence, for two reasons: to strengthen the back line against Monaco's dangerous attack and to give more freedom for Dani Alves to attack down the right. The latter, in particular, was a lethal move with the former Barcelona man providing both assists for Higuaín's goals.
Monaco missed chances
After all the deserved plaudits for Monaco's offensive play, Leonardo Jardim's men found themselves stuck on 146 goals in all competitions for the season as Buffon's goal proved as unbreachable for them as it had been for Barcelona in the quarter-finals. Given the form they had been in, it was strange to see Mbappé and Falcao spurn a couple of presentable chances apiece. Mbappé was Monaco's most dangerous forward yet failed to score for the first time when starting a UEFA Champions League fixture.
It was a frustrating night for Radamel Falcao and Monaco
David Crossan, Monaco reporter (@UEFAcomDavidC)
The hosts found out the hard way that games at the very highest level are decided on "small details", to use a favoured expression of ex-Monaco boss Didier Deschamps. Juventus's greater big-match experience was definitely visible at times, though ASM will rue their missed opportunities and Bakayoko's lapse for the visitors' second. Everything will have to go right in Turin for the principality club. While they did score three at Manchester City and Borussia Dortmund, they also conceded on both occasions.
Paolo Menicucci, Juventus reporter (@UEFAcomPaoloM)
Flexibility is one of the key features of this Juventus team, allowing Allegri to change system several times during a game. The Juve coach began with a 4-2-3-1 but also switched at certain intervals to 3-4-3 and 4-4-2. What does not change, however, is his side's defensive solidity. The Bianconeri are yet to be breached in the knockout rounds, having remained watertight since Nicolás Pareja's strike for Sevilla on matchday five (which amounts to 621 minutes).