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.