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.