Lionel Messi’s brace wiped out Milan’s first leg lead and David Villa did the rest, as Barcelona reach the Champions League quarter-finals 4-2 on aggregate.
The Rossoneri won the first leg 2-0 at San Siro, but Giampaolo Pazzini was injured and Mario Balotelli cup-tied, so M’Baye Niang completed the trident with Stephan El Shaarawy and Kevin-Prince Boateng. Barca made surprise changes to their line-up, benching Carles Puyol in favour of Gerard Pique and Javier Mascherano, while David Villa and Pedro Rodriguez supported Leo Messi. Xavi passed a fitness test after hamstring problems.
Messi had never scored from open play in nine games against Italian club sides, but he broke that curse after five minutes when curling an unstoppable shot from the D into the near top corner, leaving Christian Abbiati rooted to the spot. He had quickly exchanged passes with Xavi in the build-up.
El Shaarawy had a great chance to get a precious away goal from Boateng’s assist, but only scuffed the angled drive into the arms of Victor Valdes.
Pedro Rodriguez went down in the box under an Ignazio Abate challenge, but the referee waved play on. Abbiati did brilliantly to palm an Andres Iniesta screamer on to the crossbar and Messi turned the follow-up on to the side-netting.
However, Abbiati risked giving away a goal when missing an Abate backpass under pressure from Messi, though the defence was able to clear. The goalkeeper then fingertipped a Xavi angled drive round the far post, while a Riccardo Montolivo through ball was just a little too long for El Shaarawy. The Little Pharaoh attempted an audacious overhead kick from Niang’s cross, but only scuffed it, and aimed another angled drive straight at Valdes on the counter as Milan began to get into the game after a disastrous opening 20 minutes.
The Rossoneri had a golden opportunity to score on the counter from a Barcelona corner, but Niang went clear and his angled drive beat Valdes only to thump against the base of the far post.
Less than 120 seconds later, Barcelona doubled their lead with Messi’s second of the game. Iniesta robbed Massimo Ambrosini in the final third and set up Messi, who fired his daisy-cutter between Mexes’ legs to beat Abbiati.
The tie was now all even on aggregate. After the restart Messi went on a long run, but the finish was comfortable for Abbiati. Boateng volleyed a Niang corner off target, but Barcelona went 3-0 up.
Constant’s sliding tackle failed to intercept a Xavi pass and David Villa had all the time and space to pick his spot, curling across Abbiati into the far post.
Max Allegri introduced Sulley Muntari and Robinho for Ambrosini and Niang. Messi flashed a chest and volley over the bar.
Milan had to go all-out in the final 15 minutes and threw on Barcelona-owned Bojan Krkic for Flamini. The substitutes combined, as Bojan dribbled past Gerard Pique down the left to roll in for Robinho, whose shot was charged down from point-blank range by Jordi Alba.
The visitors started to pin Barca back into their own half during the last stages, but could not find a way through. Instead, they dreadfully wasted a free kick and allowed the counter-attack as Jordi Alba was unmarked to nutmeg Abbiati from an Alexis Sanchez pass.
Barcelona 4-0 Milan (4-2 on agg)
Scorers: Messi 5, 40 (B), Villa 55 (B), Jordi Alba 94 (B)
Barcelona: Valdes; Dani Alves, Mascherano (Puyol 77), Pique, Jordi Alba; Xavi, Sergio Busquets, Iniesta; Pedro Rodriguez (Adriano 83), Messi, Villa (Alexis Sanchez 74)
Milan: Abbiati; Abate, Zapata, Mexes, Constant; Flamini (Bojan 74), Montolivo, Ambrosini (Muntari 60); Boateng, Niang (Robinho 60), El Shaarawy
Ref: Kassai (HUN)
Think you know your Italian football? Share your knowledge, tips and comments to win cash prizes in OLBG's tipster competition  - £11,000 to be won monthly!