Match ends, Monaco 0, Juventus 2.
Juventus closed in on a second Champions League final in three seasons as Gonzalo Higuain struck twice to beat Monaco in the semi-final first leg.
The French hosts started brightly, with Kylian Mbappe heading at Gianluigi Buffon before forcing another low save.
But Higuain ruthlessly finished two fine Dani Alves assists, sweeping the Brazilian's back heel in on 29 minutes.
Radamel Falcao went close for Monaco after the break before Alves' measured cross saw Higuain put Juve in control.
After Real Madrid's comprehensive first-leg win over city rivals Atletico on Tuesday, it now looks almost certain the two teams in Cardiff on 3 June will form a repeat of the 1998 final, in which the Spanish side beat Juve 1-0.
It will prove fitting, as the two sides sport the only unbeaten records in this season's competition.
Monaco, free scoring and dangerous with their youthful side all season, showed moments of threat which could unnerve Juve in the second leg on 9 May.
But at Stade Louis II, Massimiliano Allegri's side showed just how efficient they can be and Monaco's task looks huge as Juve have not lost a home fixture by two goals since April 2013.
This was another victory built on organised defensive work, with Buffon making a couple of key saves to help usher in a ninth Juve clean sheet in 11 Champions League matches this season.
Experience wins the day
Buffon's low stop from 18-year-old Mbappe inside 10 minutes illustrated the narrative this fixture threw up as experience met youthful exuberance.
Allegri's squad boasted almost three times as many Champions League appearances in total as their hosts, who are seeking a first final appearance since 2004.
The Italian side sat deep for spells, hitting Monaco with a flowing move for the opener before pouncing to rob Tiemoue Bakayoko deep in his own half before the second.
Buffon's low save from Falcao at 1-0 underlined the resistance Monaco faced.
Ultimately the experience 39-year-old keeper said would be crucial before kick-off shone through as his side squeezed the life from Monaco, preventing the Ligue 1 leaders from scoring at home for the first time since November 2015.
The classy double act
Juve could win Serie A this weekend as they chase a treble, having already booked their place in the Italian Cup final.
They look machine-like in their winning approach. Stalwarts Buffon, Giorgio Chiellini and Leonardo Bonucci look driven to ensure the Italian side go one better than their 2015 final defeat to Barcelona, while Higuain, signed for £78m in 2016, offers a killer instinct.
Alves played on the right of midfield rather than in his customary role at right-back and despite now being 33, he showed clear energy to gallop forward and provide an opportunistic back heel to lay on the opener.
His delivery for the second was inch perfect and in creating both goals he now has six assists in the competition, bettering his best tally of five when at Barcelona in 2007-08 and 2010-11.
Feeding off such quality was Higuain, who refused to be overshadowed by the much-hyped Mbappe in the battle of the goalscorers.
The 29-year-old finished without breaking stride for the opener and peeled to the back post expertly to prod a 31st goal of the season in all competitions - one which looks set to send Juventus to the final in Cardiff.
Man of the match - Dani Alves
'I fight so hard for these moments' - key quotes
Monaco midfielder Fabinho: "They were better and deserved to win but we're going to try everything in the return match."
Juventus defender Giorgio Chiellini: "We have to congratulate Dani Alves and Gonzalo Higuain - sometimes we look to Gianluigi Buffon. We concede chances but when they come we have Gigi."
Juventus striker Gonzalo Higuain: "I fight so hard for these moments. Goals were not coming for me in this competition but I knew I just had to stay calm and keep working hard."
Another Buffon landmark - key stats
- Juventus have kept six consecutive clean sheets in the Champions League for the first time.
- This was Monaco's 58th game in all competitions this season; more than any other side in Europe's big five leagues.
- Monaco have conceded 18 goals in the Champions League this season; more than any other team among the remaining semi-finalists.
- Five goals is Higuain's best ever goalscoring season in the Champions League.
- Dani Alves provided two assists in a single Champions League game for the first time in his career.
- 10Bernardo SilvaSubstituted forTouréat 81'minutes
- 2FabinhoBooked at 37mins
- 14BakayokoSubstituted forJoão Moutinhoat 66'minutes
- 27LemarSubstituted forGermainat 67'minutes
- 6de Oliveira Moraes
- 8João Moutinho
- 16De Sanctis
- 19BonucciBooked at 21mins
- 3ChielliniBooked at 69mins
- 23Alves da Silva
- 5PjanicSubstituted forLeminaat 89'minutes
- 8MarchisioBooked at 58minsSubstituted forRincónat 81'minutes
- 12Lobo Silva
- 9HiguaínSubstituted forJu Cuadradoat 77'minutes
- 7Ju Cuadrado
- 25Murara Neto
- Antonio Miguel Mateu Lahoz
- Shots on Target
Second Half ends, Monaco 0, Juventus 2.
Corner, Juventus. Conceded by Danijel Subasic.
Corner, Monaco. Conceded by Gianluigi Buffon.
Attempt saved. Valère Germain (Monaco) header from the centre of the box is saved in the top centre of the goal. Assisted by João Moutinho with a cross.
Valère Germain (Monaco) wins a free kick on the right wing.
Foul by Giorgio Chiellini (Juventus).
Substitution, Juventus. Mario Lemina replaces Miralem Pjanic.
Foul by Tomás Rincón (Juventus).
João Moutinho (Monaco) wins a free kick on the right wing.
Corner, Monaco. Conceded by Leonardo Bonucci.
Attempt blocked. Falcao (Monaco) right footed shot from the right side of the box is blocked. Assisted by Kamil Glik.
Substitution, Monaco. Almamy Touré replaces Bernardo Silva.
Substitution, Juventus. Tomás Rincón replaces Claudio Marchisio.
Hand ball by Falcao (Monaco).
Hand ball by Paulo Dybala (Juventus).
Substitution, Juventus. Juan Cuadrado replaces Gonzalo Higuaín.
Hand ball by Bernardo Silva (Monaco).
Attempt missed. João Moutinho (Monaco) right footed shot from outside the box is high and wide to the right.
Attempt missed. Jemerson (Monaco) right footed shot from outside the box misses to the left following a set piece situation.