Henrikh Mkhitaryan and Aaron Ramsey both netted as Arsenal took a commanding lead back to the Emirates.
The Gunners ended their four game losing streak in style as they put one-foot into the quarter-finals.
AC Milan hadn't conceded for 584 minutes before Mkhitaryan smashed past Gianluigi Donnarumma via helpful deflection.
Welshman Ramsey doubled the advantage on the stroke of half time as he cottoned onto a fantastic through ball from Mesut Ozil to round the keeper and tap in.
Here is how they rated...
Strong in the challenge. Lucky not to give away an early penalty on Cutrone. Off his line quickly to keep out Kalinic.
Went missing early on when Bonaventura narrowly failed to reach a ball to the back post.
Has wiped away his tears to refocus superbly. Led by example.
Always appears to have a mistake in him but not tonight.
Appeared injured when he limped off but did well.
Actually tracked runners. One of his more switched-on nights.
Superbly-taken goal to put Arsenal in the driving seat.
At it from the start. We know how much he cares. Showed it here.
It may have been deflected but what a time to score your first goal for the club. Super strike.
They say he goes missing when the going gets tough. Not today. Super assists for both goals.
Just can’t score for toffee. But worked hard and produced a fine ball from which Mkhitaryan should have scored.
Maitland Niles for Kolasinac (62) 7
Holding for Ozil (79) 7
Elneny for Chambers (85) 6
Donnarumma 6, Calabria 5 (Borini 79, 5), Bonucci 6, Romagnoli 6, Rodriguez 5, Kessie 6, Biglia 6, Bonaventura 5 Suso 6, Cutrone 5 (Silva 68, 5), Calhanoglu 6 (Kalinic 62, 5).
Who will go through to the quarter-finals?10000+ VOTES SO FAR