Two goals down from the first leg, Messi was on target after just five minutes and although Christian Abbiati was at his best to repel the home side, he could do little to stop Messi doubling Barca’s lead five minutes before the break and leave the tie finely poised entering the second period.
David Villa – preferred by assistant manager Jordi Roura to Cesc Fabregas – scored a vital third before Jordi Alba’s injury time strike settled the tie and sealed the Catalan giant’s passage to the last eight.
Milan struggled to deal with the movement of an inspired Barcelona while they failed to create enough chances with Victor Valdes rarely tested in the home goal.
It took just five minutes for Barcelona to reduce the deficit and take the lead on the night on front of 96,000 spectators.
Xavi’s intricate pass found Messi whose unstoppable curling effort into the top corner gave Abbiati absolutely no chance.
It was Messi’s 52nd goal of the season and he almost created one for Andres Iniesta moments later before Philippe Mexes intercepted.
The home side were in full flow and after 13 minutes Abbiati was forced into making a fantastic save to tip Iniesta’s effort on to the bar before Messi somehow shot wide following up.
Even at this early stage it was a case of when, not if, they were to draw level on aggregate and the home side thought they should have had a penalty when Massimo Ambrosini collided with Pedro inside the box.
However, the visitors survived and slowly began to deal with the attacking onslaught of the home side, whilst creating chances of their own.
The best fell to lone striker M’Baye Niang who raced clear after breaking the Barca offside trap and although he beat Valdes, his effort cannoned back off the post and away from danger.
Milan were made to pay just seconds later and again it was Messi who was the scorer.
Ambrosini lost out to Iniesta in midfield who fed Messi, who it must be said, looked to be in an offside position when the ball was played.
The flag stayed down, however, and the Argentinian cut inside and fired past a helpless Abbiati with his lethal left foot.
Barca began the second period much like the first and after 55 minutes Xavi’s pin-point pass eluded a sliding Cristian Zapata to find Villa, whose left-footed finish gave the Milan goalkeeper no chance.
With 15 minutes left goalscorer Villa was replaced by Alexis Sanchez, with Carlos Puyol coming on for Javier Mascherano shortly afterwards to shore things up.
The visitors needed one goal to go through and they almost got it too but for a Jordi Alba’s intervention after 81 minutes to deny Robinho a simple chance from close range.
The win was sealed late on when Alba somehow gathered the strength to burst down the left to fire past Abbiati in what was another memorable Barca performance at the Nou Camp.
BARCELONA: Valdes, Alves, Pique, Alba, Xavi, Iniesta, Messi, Mascherano (Puyol 77), Busquets, Villa (Sanchez 74), Pedro (Adriano Correia 83).
AC MILAN: Abbiati, Mexes, Zapata, Boateng, Flamini (Bojan 75), Montolivo, Abate, Constant, Ambrosini (Muntari 60), Shaarawy, Niang (Robinho 60).
Referee: Viktor Kassai