This is the game report from goal.com
Andriy Shevchenko's goal had all but qualified Milan anyway, but Inter left Europe in shame after Dida was struck by a flare.
The Rossoneri had eliminated their local rivals from this competition in 2003 and were leading 2-0 from the first leg with goals from Jaap Stam and Andriy Shevchenko, so Inter had a mountain to climb in order to qualify, especially as in three derbies so far this season they had failed to score a single goal and the Nerazzurri had not beaten their 'cousins' since 2002, managing three draws and six defeats going into this game.
Adriano made his comeback after suffering a knee injury three weeks ago and was the lone striker, as Roberto Mancini hoped to take control of the midfield with Juan Sebastian Veron in his preferred central role. Dejan Stankovic was injured and Gennaro Gattuso suspended, so Milan brought in Massimo Ambrosini to fill in. Paolo Maldini was able to start despite suffering from a slight injury.
There was an incident after two minutes, as Marco Materazzi fell to the ground clutching his face following contact with Andriy Shevchenko. The two players seemed to go head to head and the Inter man came off worse, but the linesman spoke with referee Markus Merk and no action was taken.
Kily Gonzalez and Ambrosini were booked soon after for fouls on each other as it became clear immediately that this was going to be a fiery game.
Marcos Cafu proved crucial on his fellow Brazilian Adriano after he had shrugged off Alessandro Nesta, but Ivan Cordoba was the third booked player after just 11 minutes for a late challenge on Kaka as he was sprinting through the centre towards goal. Andrea Pirlo curled the resulting free kick past the near post.
Veron unleashed a right-foot rocket from 20 metres and a very acute angle - practically the edge of the pitch - that Dida just about managed to palm round the upright as Inter continued to be aggressive in these opening stages.
However, for all the pressure, it was Milan who broke the deadlock with a fantastic individual effort from Andriy Shevchenko. The reigning European Player of the Year gathered the ball on the right corner of the box and rifled in a fierce left-foot effort that whipped past Francesco Toldo's outstretched hand. The Ukrainian is a real nightmare for Inter, as he has now scored 12 goals in 16 derbies.
Unlike the first leg, Inter refused to give in and Dida was at full stretch to flap away Veron's corner kick. Moments later, the Brazilian performed a crucial flying save on a Kily Gonzalez long-range strike.
Adriano's header was just wide, though the striker complained of a push from Cafu, then Milan poured forward on the counter-attack and Cafu's diving header was off target from Sheva's cross under pressure from Giuseppe Favalli.
An Adriano screamer from 25 metres was just wide as it became a very open game with chances for both sides. Alessandro Nesta was able to continue despite Adriano accidentally standing on his hip, but the defender was booked for the challenge and will miss the semi-final first leg.
Mancini made massive changes at half-time, introducing Sinisa Mihajlovic and Julio Ricardo Cruz in place of Kily Gonzalez and Cristiano Zanetti, moving Andy van der Meyde to the left flank and Javier Zanetti to the right side of midfield in a more traditional 4-4-2 system.
There was another blow for Inter, as within two minutes of the restart Adriano began limping heavily with a muscular problem and was replaced by Obafemi Martins. The giant Brazilian had not played for three weeks due to a strained knee ligament and was a major doubt to even feature in this tie, let alone play from the start. He generously tried to run it off, but just seemed to make the injury worse and was eventually carried off.
It was quite a start from the young Nigerian, who within a minute sprinted past Nesta on a Cruz through ball and had his angled drive turned on to the upright by Dida's reaction save.
Veron drilled another long-range piledriver just past the target, though Dida had it covered, and Mihajlovic blasted a free kick well wide.
Martins revived Inter's strike force and out-sprinted Jaap Stam only to fire straight at the goalkeeper and on this evidence some fans will think the Nigerian should've been in the starting eleven.
Cafu's low cross found Hernan Crespo for an ambitious backheel that went wide of the near post as Milan started to look more comfortable passing the ball around.
Van der Meyde held up the ball for Martins only for his shot to be charged down by Nesta, while Milan introduced Manuel Rui Costa for the disappointing Crespo, reverting back to the Christmas tree formation. The Portuguese star was in confident mood after scoring a stunning goal at the weekend in their 1-1 draw with Brescia.
When Inter did managed to get a shot on goal, Dida was more than equal to it and was at full stretch for a fantastic one-handed save to tip van der Meyde's accurate low strike out of the far corner of the net.
There as controversy on the resulting corner kick, as Esteban Cambiasso nodded in at the back post, but it was disallowed for a Cruz nudge on Dida. There was minimal contact and it was a debatable decision - there was certainly less in this than the John Terry goal Chelsea were allowed against Barcelona in the last round.
Play had to be halted when a lit flare struck the goalkeeper on the shoulder and he required treatment for a burn that singed a hole right through his jersey, but the fireworks continued to rain down in a disgraceful display that will no doubt cost Inter a large fine and possibly a ban when they re-enter Europe next season.
Merk ordered the players back into the dressing room and waited for the UEFA delegate before making a decision on whether or not the game could continue as Inter supporters continued to rain objects on to the pitch. Milan suggested switching the ends for the final 15 minutes of play, but the referee refused the request.
The teams came back out after a half-hour break with Christian Abbiati in goal for Milan, so Dida's injury was worse than previously thought. The Inter fans did not seem to learn their lesson and continued to throw flares, forcing Merk to abandon the game entirely 30 seconds later. It was a shameful night for Italian football and Inter left Europe in the worst way possible.
What uefa had to say on the game:
The match is abandoned with Milan leading 1-0. The UEFA Control and Disciplinary Body will decide if the result stands after investigating tonight's incidents. Milan were leading 1-0 thanks to Shevchenko's first-half strike after winning the first leg 2-0.