United, trailing 1-0 from the first leg, started brightly but were then undone by brilliance from Messi and a glaring mistake from goalkeeper David de Gea.
Messi put the hosts ahead with a fine curling effort from 20 yards in the 16th minute and four minutes later De Gea let a weaker shot from the edge of the area squirm under his body for the Argentine’s second.
Philippe Coutinho added a third for Barca in the 61st minute, curling a stunning effort into the top corner from distance.
United hit the bar inside the first 40 seconds through Marcus Rashford but were dominated after going behind.
Alexis Sanchez’s diving header, which was spectacularly saved by Barca goalkeeper Marc Andre ter Stegen in the 90th minute, was as close as the visitors came in the second half.
It was a sobering night for United manager Ole Gunnar Solskjaer on the ground where he scored his most famous goal, the stoppage-time winner in the 1999 Champions League final.
Barca now meet either Liverpool or Porto in the semi-final, with the Reds taking a 2-0 lead into Wednesday’s second leg.
United were always facing a difficult task as they attempted to overturn a first-leg deficit for the second round in a row.
Just like in the last 16, when they stunned Paris St-Germain at the Parc de Princes, United started the game fast, looked dangerous on the counter-attack and had opportunities – a poor touch from Scott McTominay in the area saw a chance wasted shortly after Rashford’s first-minute effort.
That start raised hope of an improbable comeback but Barcelona soon took charge and were awarded a penalty in the 11th minute for Fred’s clumsy challenge on Ivan Rakitic in the area only for the decision to overturned after the referee consulted VAR.
United survived that scare but their hopes were effectively ended when they allowed Messi to score twice in four first-half minutes.
The Argentine dazzled for his first goal with a nutmeg of United midfielder Fred and a perfect finish into the bottom corner, but Ashley Young gave the ball away in the left-back position and the visitors’ defence backed off rather than attempt to stop the shot.
Then De Gea, so often United’s star player, made a huge mistake by allowing Messi’s tame shot from 20 yards to slip under his body and in.
Unlike in the first leg, Barcelona looked as though they could could cut their opponents open at will.
Messi was at the centre of that attacking threat with Jordi Alba also marauding forward from left-back and the Barcelona midfield outplaying their United counterparts, both in terms of their control of the ball and pressing to win it back.
No United player made any real impact on a match that proved how great a rebuild is required under Solskjaer if they are to compete with the European elite.
After a quiet first leg it was no surprise to see Messi take control in the second.
The 31-year-old often stood still in the United half but would burst into life with devastating effect.
Messi’s double took his goals tally to 45 in 42 games this term and made him the outright top scorer in this season’s Champions League.
It was yet more success for the Argentine at United’s expense, having also scored against them in both the 2009 and 2011 Champions League finals.
The home fans chanted Messi’s name again and again during the game, but his performance was not just about his goals.
He amazed the jubilant fans in first-half stoppage time when turning Phil Jones on the halfway line, driving towards the area, and beating Jones twice more before feeding Alba down the left. Alba then crossed for Sergi Roberto but De Gea blocked the Spaniard’s close-range shot on the goal line.
In such sublime form, Messi looks intent on leading his side to a first Champions League title since 2015.
And the celebratory mood at the Nou Camp was summed up in the second half when the Barcelona supporters loudly cheered news of Ajax’s winning goal against Cristiano Ronaldo’s Juventus in the night’s other quarter-final second leg.