Del Piero opened his account with a brilliant 25-yard shot in the 34th minute that beat the French international goalkeeper Fabien Barthez.
The Portuguese defender Francisco Da Costa equalised in the final minute of the first half with a powerful drive, but the French side, who put out Manchester United in the quarter-finals, were still behind at half- time. Zinedine Zidane was brought down by Barthez and Del Piero made no mistake with the penalty to give Juve the lead again. He made it three in the 62nd minute, with a second penalty, after Filippo Inzaghi was fouled by Muhammad Konjik.
There was worse to come for Monaco when, with two minutes left, Del Piero slalomed through the defence to offer Zidane the chance to score with a powerful drive from the edge of the area. The team that Manchester United beat 3-1 in the group stages now look certainties to reach the final.
Del Piero, however, was in mood to be complacent. "We produced an impressive performance tonight, but we are not yet in the final. Monaco are a strong team and we must be careful in the second leg."
Real Madrid also put themselves in sight of the final when they beat the reigning champions, Borussia Dortmund, 2-0 in the other semi-final. But the night will be remembered for the bizarre circumstances that saw the kick-off delayed by 85 minutes at the Bernabeu stadium as one of the goals collapsed before play began.
The pressure of Real Madrid fans on the security netting brought down a goal support and the whole structure fell over. A bemused referee took the players off the pitch while frantic attempts to repair the goal went on. It proved beyond repair, however, and the players, and supporters, were made to wait until a replacement goal arrived from Real Madrid's training ground.
Dortmund will be wishing it had not arrived at all as they saw Real score a goal in the each half to take a sizeable advantage to the second leg. Fernando Morientes scored Real's first after 24 minutes before Christian Karembeu added the second with a 20 minutes remaining.Reuse content