Late strikes from Filippo Inzaghi and Ukrainian Andriy Shevchenko gave AC Milan a 3-1 victory over Olympique Lyon to send the Italian side into the semi-finals of the Champions League.
The first leg in France ended goalless and at 1-1 with two minutes of normal time remaining Lyon were set to head into the semi-finals of the competition for the first time on the 'away goals' rule.
That would have been as much as Gerard Houllier's Lyon deserved after an enterprising and positive display in front of 79,000 fans at the San Siro stadium.
Milan looked to have run out of ideas and energy but, as so often, Shevchenko and Inzaghi took full advantage of the opportunities that came their way to turn the tie around.
Right from the outset Lyon had the best chances - largely thanks to another jittery display from Milan's increasingly shaky Brazilian keeper Dida.
Dida made a hash of a backpass in the 18th minute, miskicking to the edge of the area but Lyon forward Sylvain Wiltord was unable to make anything of the opportunity, firing his shot wide.
The Milan keeper then rushed out of his area but failed to collect a long ball forward and from the scramble Florent Malouda, a surprise inclusion in midfield for Lyon, attempted a lob which fell just over the crossbar.
Dida did better to parry a wicked free-kick from Juninho which bounced awkwardly in front of the Milan keeper as the French side continued to apply pressure.
The Milan defence had to be altered in the 24th minute when Dutchman Jaap Stam limped off to be replaced by Alessandro Costacurta, who will be 40 later this month.
Within a minute of that switch Carlo Ancelotti's side had the lead. Shevchenko fed Clarence Seedorf on the left flank and the Dutchman provided a precise cross which was headed home by Inzaghi.
Milan's advantage lasted just six minutes.
Juninho whipped in a dangerous free-kick from wide on the left, and with the Milan defence nowhere, a Cris header struck Fred and from the loose ball Senegalese midfielder Mahamadou Diarra headed past Dida to equalise.
Juninho, who missed the first-leg through suspension, was a threat again five minutes before the break. His dipping cross-shot forced Dida to tip over the bar at full-stretch and from the resulting corner, taken by the Brazilian, an unmarked Fred headed against the outside of the post.
The pattern of the game changed little after the interval with Lyon far from sitting on their 'away goal' advantage.
But Milan did create more - Serginho forcing Lyon keeper Gregory Coupet into action after a swift break down the left and then Seedorf drove narrowly wide.
As the clock wound down, the French supporters were in celebratory mood but were silenced in the 88th minute when Shevchenko fired in a low shot which Coupet turned against the far post - the ball rolled along the line hitting the near post before Inzaghi scrambled it over the line.
Then in injury time, Shevchenko latched on to a poor back pass from Francois Clerc and rounded Coupet before slotting into the unguarded goal to give Milan a result that certainly flattered them.