Messi's form had been questioned by some after Barcelona were knocked out of the Copa del Rey by Real Madrid and looked demoralised in going down to Milan at the San Siro, but the criticism seemed to spur him on as he tore the Italians apart from the start.
He scored at the beginning and end of the first half, while David Villa hit a special goal for himself 10 minutes in the second period after a long run of bad luck with injury and form.
That put the Catalans ahead in the tie for the first time, before Jordi Alba netted in injury-time to seal a 4-2 aggregate win and a place in Friday's quarter-final draw.
On a personal level, Messi's brace saw him reach yet another landmark in an incredible career.
He now has 58 Champions League goals, two more than Ruud van Nistelrooy, and his target now is Raul's all-time best of 71.
Before the game, it was a question of which out-of-form strikers would play with Messi in attack, and in the end Pedro Rodriguez was chosen along with Villa.
At the back, captain Carles Puyol, who was carrying a slight knock, was not risked and so Javier Mascherano started alongside Gerard Pique.
Even with a two-goal advantage from the first leg, Milan knew they would be in for a tough night but they would have hoped to withstand the Barca pressure for longer than they did.
The home side surged forward from the start and Milan could do nothing when Messi exchanged passes with Xavi Hernandez before stroking a beautiful finish into the top corner from the edge of the area after six minutes.
The tempo was considerably quicker from Barca than in recent matches but they had to be wary of Milan on the counter attack.
The visitors were without an important player in Giampaolo Pazzini, who suffered an injury in Milan's 2-0 win over Genoa at the weekend, as well as the cup-tied Mario Balotelli, but they still had quality in attack.
Stephan El Shaarawy gave the hosts a warning with a scuffed shot in front of goal which was dealt with by goalkeeper Victor Valdes as Barca's assistant coach Jordi Roura, on the touchline, urged his team to calm down.
Milan were not comfortable at the back and Christian Abbiati could only palm an Andres Iniesta shot onto the crossbar. Messi was quickest to the rebound but, from a tight angle, headed into the side netting.
Abbiati then denied Xavi but, as the half progressed, Milan succeeded in taking the steam out of the game.
The near-95,000 crowd could see Barca's Champions League hopes fading in the 38th minute when last-man Mascherano, stretching, could only head the ball to M'Baye Niang.
The youngster bore down on goal, only to see his shot rebound off the far post to safety.
Seconds later, Iniesta fed Messi, who fired in Barcelona's second through the legs of Philippe Mexes from 20 yards.
The Argentine maintained the same drive after the break, firing a volley over the crossbar and tormenting the Italian defence.
But it was the turn of Villa, who had had a quiet night, to get the third as he controlled a Xavi pass and slotted home clinically.
Barca sat back on their lead and, perhaps because of their patchy recent results, got more and more anxious knowing a goal for Milan would still send the Italians through.
Alba made a crucial block to deny substitute Robinho, before the left-back finally eased the tension when he got the fourth goal two minutes into stoppage time.
Alexis Sanchez played in the Spanish international, who kept his cool to knock the ball in.
What the stars mean:
★ Poor ★ ★ Promising ★★★ Good ★★★★ Very good ★★★★★ Exceptional