Arsenal hade det mesta av bollen och förde matchen inledningsvis, men utan att skapa några riktigt heta målchanser.
Skärpan saknades till en början och Gary Neville kritiserade Arsenals Kai Havertz.
- Han gör misstag hela tiden, det är slarviga passningar, säger han.
Efter 25 minuters spel stack Manchester United upp i en kontring. Eriksen spelade fram Marcus Rashford som vek in från vänster och satte dit 1-0 via stolpen.
Men svaret från hemmalaget kom blixtsnabbt.
Martin Ödegaard dunkade in kvitteringen bara 35 sekunder efter att spelet kom igång efter ledningsmålet.
I den andra halvleken skulle Kai Havertz hamna i fokus igen. Tysken gick omkull i straffområdet och tilldömdes straff, men efter en VAR-granskning tog Anthony Taylor tillbaka beslutet.
Sedan gjorde Manchester United ett dubbelbyte. Rasmus Höjlund kom in i spel och gjorde därmed sin debut och Lisandro Martinez klev av med en skada. Då byttes Harry Maguire in till jubel från Arsenal-supportrarna.
- Arsenal-fansen buar Hojlund när han springer in på plan. Och jublar sedan Maguires ankomst! De skanderar nu hans namn!, sa Sky Sports Peter Smith.
I den 88:e matchminuten trodde sedan Manchester United att man hade tagit ledningen när Alejandro Garnacho rann igenom och satte dit bollen, men en VAR-granskning kunde slå fast att det var offside.
Istället skulle det vara Arsenal som vann matchen då Declan Rice avgjorde i den 97:e minuten.
Matchen slutade 3-1 efter att Gabriel Jesus avslutat målskyttet i den 101:a minuten.
- Det var galet. Jag vet inte vad som hände men Gabi (Jesus) gjorde det så bra till slut och gjorde ett fantastiskt mål och vi vann, säger Martin Ödegaard till Sky Sports efter matchen.
Startelvor:
Arsenal: Ramsdale - White, Saliba, Gabriel, Zintjenko - Rice, Havertz, Ödegaard - Saka, Nketiah, Martinelli
Manchester United: Onana - Wan-Bissaka, Lindelöf, Martinez, Dalot - Casemiro, Eriksen, Fernandes - Antony, Martial, Rashford.