Efter en mållös första halvlek öppnade Ollie Watkins målskyttet direkt i den andra halvleken. Men glädjen blev kortvarig och Anthony Martial stötte in kvitteringen bara sekunder efter att spelet satts i gång igen.
I den 61:a minuten tog Villa ledningen igen efter att Leon Bailey nickat ner bollen på Diogo Dalots fot. Försvararen vinklade olyckligt in bollen i egen målbur.
Marcus Rashford kvitterade och i den 78:e minuten kom sedan misstaget som fällde avgörandet.
Robin Olsen hade bollen vid fötterna, men slog en svag passning rakt i famnen på Alejandro Garnacho. Han hittade i sin tur Bruno Fernandes som satte 3-2, samtidigt som en bedrövad Olsen satt på marken och tog sig för pannan.
Scott McTominay fastställde slutresultatet 4-2 på stopptid, och det är därmed färdigspelat i ligacupen för Aston Villa medan Manchester United är vidare till den fjärde omgången som spelas den 20-22 december.
Ludwig Augustinsson spelade 80 minuter för Aston Villa medan Anthony Elanga byttes in i den 62:a minuten för United och Victor Nilsson Lindelöf spelade 87 minuter.
Engelska Ligacupen
Manchester United
4 - 2
Aston Villa
Första halvlek
- McTominay40'
- Maguire43'
Andra halvlek
- 48'0 - 1Watkins
- 1 - 1Martial49'
- Fernandes52'
- 52'Douglas Luiz
- 54'A. Young
- 59'BuendiaIngs
- 59'BaileyRamsey
- 59'MingsKonsa
- 61'1 - 2Dalot
- ElangaVan de Beek62'
- EriksenFred62'
- GarnachoMartial62'
- 2 - 2Rashford67'
- 74'CashA. Young
- 3 - 2Fernandes78'
- 80'DigneAugustinsson
- CasemiroRashford82'
- Li. MartínezLindelöf87'
- 4 - 2McTominay90'+1'
- 90'+3'Bailey