Scott McTominay's 86th-minute header gave Manchester United a priceless victory at Aston Villa as they fight for Champions League qualification.
United appeared to be clinging on for a point as Villa created a succession of chances after Douglas Luiz had cancelled out Rasmus Hojlund's first-half strike.
But McTominay settled a thrilling contest when he got in front of Matty Cash and rose to meet Diogo Dalot's right-wing cross.
United manager Erik ten Hag punched the air in delight as his side moved to within five points of their hosts, who remain fifth, and six adrift of Tottenham.
It was United's fourth successive victory in all competitions - their best run of the season.
The result was harsh on Villa, though. They were thwarted on numerous occasions by United keeper Andre Onana, and despite the urgings of the home support were unable to draw level a second time.
More to follow.
- Reaction to Aston Villa v Manchester United
- How did you rate Aston Villa's performance? Have your say here
- What did you make of Manchester United's display? Send us your views here
How to play
Rate players out of 10 throughout or after the game. The rater will close 30 minutes after the final whistle.
Rating range key1 = Give it up10 = Pure perfection
Squad number1Player nameE Martínez
Squad number2Player nameCash
Squad number3Player nameDiego Carlos
Squad number17Player nameLenglet
Squad number15Player nameÁlex Moreno
Squad number44Player nameKamara
Squad number6Player nameDouglas Luiz
Squad number31Player nameBailey
Squad number7Player nameMcGinn
Squad number41Player nameJ Ramsey
Squad number11Player nameWatkins
Squad number8Player nameTielemans
Squad number12Player nameDigne
Squad number19Player nameDiaby
Squad number22Player nameZaniolo
Squad number24Player nameOnana
Squad number20Player nameDiogo Dalot
Squad number19Player nameVarane
Squad number5Player nameMaguire
Squad number23Player nameShaw
Squad number37Player nameMainoo
Squad number18Player nameCasemiro
Squad number17Player nameGarnacho
Squad number8Player nameBruno Fernandes
Squad number10Player nameRashford
Squad number11Player nameHøjlund
Squad number2Player nameLindelöf
Squad number4Player nameS Amrabat
Squad number35Player nameEvans
Squad number39Player nameMcTominay
- 1E Martínez
- 2CashBooked at 60mins
- 3Diego Carlos
- 17LengletBooked at 45mins
- 15MorenoSubstituted forDigneat 87'minutes
- 44KamaraSubstituted forDiabyat 65'minutesBooked at 71mins
- 6Douglas Luiz
- 31BaileySubstituted forTielemansat 73'minutes
- 7McGinnSubstituted forZanioloat 87'minutes
- 41J Ramsey
- 14P Torres
- 23ShawSubstituted forLindelöfat 45'minutes
- 37MainooBooked at 45minsSubstituted forS Amrabatat 90+2'minutes
- 18CasemiroBooked at 37mins
- 8Bruno Fernandes
- 10RashfordSubstituted forMcTominayat 73'minutes
- 11HøjlundSubstituted forEvansat 90+2'minutes
- 4S Amrabat
Match ends, Aston Villa 1, Manchester United 2.
Second Half ends, Aston Villa 1, Manchester United 2.
Foul by Youri Tielemans (Aston Villa).
Casemiro (Manchester United) wins a free kick in the defensive half.
Attempt blocked. Jacob Ramsey (Aston Villa) left footed shot from the centre of the box is blocked.
Attempt saved. Alejandro Garnacho (Manchester United) left footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Casemiro.
Attempt saved. Matty Cash (Aston Villa) left footed shot from outside the box is saved in the top right corner. Assisted by Youri Tielemans.
Substitution, Manchester United. Sofyan Amrabat replaces Kobbie Mainoo.
Substitution, Manchester United. Jonny Evans replaces Rasmus Højlund.
Moussa Diaby (Aston Villa) wins a free kick in the defensive half.
Foul by Victor Lindelöf (Manchester United).
Attempt saved. Ollie Watkins (Aston Villa) header from the centre of the box is saved in the centre of the goal. Assisted by Matty Cash with a cross.
Foul by Lucas Digne (Aston Villa).
Bruno Fernandes (Manchester United) wins a free kick in the defensive half.
Substitution, Aston Villa. Lucas Digne replaces Álex Moreno.
Substitution, Aston Villa. Nicolò Zaniolo replaces John McGinn.
Goal! Aston Villa 1, Manchester United 2. Scott McTominay (Manchester United) header from the centre of the box to the high centre of the goal. Assisted by Diogo Dalot with a cross.
Foul by Moussa Diaby (Aston Villa).
Raphaël Varane (Manchester United) wins a free kick in the defensive half.
John McGinn (Aston Villa) wins a free kick in the defensive half.