Manchester United produced a memorable second-half comeback to reach the Europa League last 16 and knock out Barcelona in the process.
Brazilian duo Fred and Antony, who came on as a half-time substitute, both drilled home low first-time shots in front of an ecstatic Stretford End.
It was a victory that looked so unlikely at half-time as Barcelona led thanks to Robert Lewandowski's 18th-minute penalty after Bruno Fernandes' needless foul on Alejandro Balde.
But Antony's arrival for struggling forward Wout Weghost changed the course of the tie as it injected more pace into United's attacks, which the La Liga leaders failed to deal with.
Erik ten Hag's side now move on to Wembley, where they will look to collect their first silverware since 2017 when they face Newcastle in the EFL Cup final.
For Barcelona, it was the first time they have been eliminated from European competition without reaching the last 16 since 1985, which is not quite what president Joan Laporta had in mind when he pulled all those economic levers last year.
Fred the red menace
Fred has had plenty of detractors since his £47m move to United from Shakhtar Donetsk in 2018.
The chances are if Christian Eriksen had not been ruled out until the end of April through injury, he wouldn't even have started this game.
Yet, as Ten Hag has admitted, anyone capable of playing regularly for Brazil has to be a good player and this was one of those occasions when he proved it.
Fred scored for Manchester United after only two minutes of the second halfFred's goal was an excellent effort as he moved into space on the edge of the area, unseen by Barca's Dutch midfielder Frenkie de Jong, who United spent so long trying to sign in the summer.
When De Jong did come across to pressure his opponent after Fernandes had played a superb through ball, he was too late to prevent Fred drilling home the equaliser.
The goal transformed the contest. Fred then used his energy to break down Barcelona counter attacks, make surging runs that unsettled the visitors and even did the simple passing right, which he quite often gets wrong.
Fred also followed up Alejandro Garnacho in having a shot blocked before a third effort from Antony brought their second goal and allowed United to join Arsenal in the last-16 draw.
Whoever they get, the first leg will be at home on 9 March.
Ten Hag's decisive half-time switch
Ten Hag has praised Weghorst for his industry but at this level - a Champions League game in all but name - he looked what he is, an emergency signing brought in at relatively little expense to plug a gap created by Cristiano Ronaldo's unscheduled exit before someone more suitable comes in next summer.
The continued injury absence of Anthony Martial means Weghorst is having to play a more prominent role than Ten Hag envisaged and it weakens his team overall.
Robert Lewandowski has scored 25 goals in all competitions for Barcelona this seasonIt was no surprise Antony replaced him at half-time, nor that the hosts' performance should improve so markedly as a result.
There were still some nervy moments, with De Gea producing a fine save to deny Jules Kounde after Jadon Sancho had failed to track the France defender and Raphael Varane booting Lewandowski's shot away from danger in injury time when it might have been rolling in.
But it was Ten Hag and his coaching staff celebrating at the final whistle.
The Dutchman has evidently transformed fortunes at a club that appeared to be going nowhere fast 12 months ago, although he knows it does need some silverware to really underline that they are on the right track.
John Motson RIP
Manchester United paid tribute to legendary BBC commentator John Motson at Old Trafford.
The club placed a picture of Motson, who died on Thursday, on one of the tables in the area of the press box where the broadcast media sit, together with a candle in Motson's honour.
Player of the match
AntonyAntony
Barcelona
Squad number9Player nameLewandowski
Squad number22Player nameRaphinha
Squad number21Player nameF de Jong
Squad number1Player nameter Stegen
Squad number23Player nameKoundé
Squad number19Player nameKessie
Squad number4Player nameAraújo
Squad number28Player nameBalde
Squad number5Player nameBusquets
Squad number15Player nameChristensen
Squad number20Player nameRoberto
Squad number11Player nameF Torres
Squad number10Player nameAnsu Fati
Squad number17Player nameAlonso
Line-ups
Man Utd
Formation 4-2-3-1
1de Gea
29Wan-Bissaka19Varane6Li Martínez23Shaw
17Fred18Casemiro
8Bruno Fernandes25Sancho10Rashford
27Weghorst
1de Gea29Wan-BissakaSubstituted forDalotat 67'minutes19Varane6Li Martínez23Shaw17Fred18CasemiroBooked at 86mins8Bruno FernandesBooked at 60mins25SanchoSubstituted forGarnachoat 67'minutesBooked at 78mins10RashfordSubstituted forMcTominayat 88'minutes27WeghorstSubstituted forAntonyat 45'minutesSubstitutes
2Lindelöf5Maguire12Malacia15Sabitzer20Dalot21Antony22Heaton28Pellistri36Elanga39McTominay49Garnacho73MainooBarcelona
Formation 4-3-3
1ter Stegen
23Koundé4Araújo15Christensen28Balde
19Kessie5Busquets21F de Jong
22Raphinha9Lewandowski20Roberto
1ter Stegen23Koundé4AraújoSubstituted forAlonsoat 82'minutes15Christensen28Balde19KessieBooked at 60mins5BusquetsBooked at 83mins21F de Jong22RaphinhaSubstituted forAnsu Fatiat 75'minutes9LewandowskiBooked at 71mins20RobertoSubstituted forF Torresat 70'minutesSubstitutes
10Ansu Fati11F Torres17Alonso18Alba24García26Peña Sotorres29Casadó32Torre36TenasLive Text
Match ends, Manchester United 2, Barcelona 1.
Second Half ends, Manchester United 2, Barcelona 1.
Offside, Barcelona. Frenkie de Jong tries a through ball, but Robert Lewandowski is caught offside.
Hand ball by Marcos Alonso (Barcelona).
Robert Lewandowski (Barcelona) wins a free kick in the defensive half.
Foul by Lisandro Martínez (Manchester United).
Foul by Robert Lewandowski (Barcelona).
Bruno Fernandes (Manchester United) wins a free kick in the defensive half.
Substitution, Manchester United. Scott McTominay replaces Marcus Rashford.
Casemiro (Manchester United) is shown the yellow card for a bad foul.
Robert Lewandowski (Barcelona) wins a free kick in the attacking half.
Foul by Casemiro (Manchester United).
Delay over. They are ready to continue.
Delay in match because of an injury Alejandro Garnacho (Manchester United).
Sergio Busquets (Barcelona) is shown the yellow card for a bad foul.
Foul by Sergio Busquets (Barcelona).
Alejandro Garnacho (Manchester United) wins a free kick in the defensive half.
Delay over. They are ready to continue.
Substitution, Barcelona. Marcos Alonso replaces Ronald Araújo.
Delay in match because of an injury Marcus Rashford (Manchester United).