Manchester United made error-strewn starts to both halves and found themselves 4-2 down against Aston Villa before Joshua Zirkzee scored in stoppage time.