Barca took the lead after five minute at the Nou Camp thanks to Messi's brilliant curling effort.
Then the World Player of the Year levelled the tie on aggregate five minutes before the break with a powerful low drive.
Barca dominated the Italians, who struggled to get the ball out of their own half for long periods.
David Villa crashed home a third for the hosts 10 minutes after the break before Jordi Alba killed off Milan with a break-away goal in the second minute of added time.
Barca are the first team in the Champions League to overturn a two-goal first leg deficit without the benefit of an away goal, while only four sides had successfully fought back from a deficit of more than one goal.
"We started really fired up as everyone could see," said Villa.
"The early goal helped us a lot, but it was something we looked for from the first minute.
"We believed we could do it from then, in fact from the final whistle of the last game.
"We are delighted for the fans. We always believed we could do it. For them, and with them, we have done it."
Roared on by around 90,000 fans, Barca harried and hassled Milan from the start.
The early goal they desperately needed arrived when Messi exchanged passes with Xavi on the edge of the Milan area and curled a brilliant shot into the top corner that left goalkeeper Christian Abbiati rooted to the spot.
Then Barca doubled their lead on the night. Andres Iniesta won the ball in midfield and fed Messi who smashed a low drive past Abbiati.
Barca continued to dominate and Villa justified his inclusion in the starting line-up before Alba fire home deep into time added on.