Cristiano Ronaldo scored an injury-time winner as Manchester United came from behind to beat Villarreal in an action-packed Champions League Group F contest.
The repeat of last season's Europa League final, which the Spanish side won on penalties, looked to be heading for a draw after another disappointing United performance but summer signing Ronaldo stroked home from Jesse Lingard's lay-off to spark jubilant scenes at Old Trafford.
However, visiting manager Unai Emery will be left wondering how his side did not come away with all three points.
United started brightly, with Bruno Fernandes scooping over and Ronaldo also failing to hit the target with a header in the opening seven minutes.
Villarreal took charge thereafter but could not score in a first half in which they created chance after chance.
United goalkeeper David de Gea made vital reflex saves to deny Arnaut Danjuma and Paco Alcacer, and also thwarted Yeremi Pino.
Striker Alcacer should have scored when Raphael Varane misjudged the bounce of the ball but dragged his shot wide, and Alberto Moreno and Pino both blazed over from promising positions.
But they did break the deadlock at the start of the second half as Danjuma got in behind and pulled the ball back for Alcacer to convert from close range.
United were finding it difficult to make inroads but equalised through Alex Telles' moment of genius, as he smashed a first-time volley from 20 yards into the bottom corner.
Ronaldo's winner means Ole Gunnar Solskjaer's side pick up their first win while, in the group's other tie, Atalanta beat Young Boys 1-0 to go top of the table.
Ronaldo saves Man Utd
Brought back from Juventus in August for the big occasion, Ronaldo left it late to deliver his most telling moment since his return to Old Trafford.
United were heading for a third straight game without a win - after being knocked out of the Carabao Cup by West Ham last week and beaten by Aston Villa in a limp performance on Saturday - but the Portuguese superstar had other ideas.
Making his 178th appearance in the Champions League, the most of any player, Ronaldo coolly converted in the 95th minute for his fifth goal of the campaign.
The home supporters erupted as the goal went in, with Ronaldo running to the corner, ripping off his shirt and throwing it into the air in celebration.
Fans stayed inside the stadium long after full-time, serenading their returning hero with chants of "Viva Ronaldo".
Moment of brilliance bails out Man Utd
Alex Telles scored his first goal for Manchester United, before Cristiano Ronaldo's winnerThough they ultimately collected three points, Solskjaer's side looked to be papering over the cracks as they once again failed to find any real cohesion in the final third of the pitch.
Ronaldo, Fernandes, Mason Greenwood, Jadon Sancho and Paul Pogba all started in front of a raucous crowd, but there seems to be little connection between a frontline filled with attacking talent.
Adding to their early misses, Fernandes flashed a shot wide and substitute Edinson Cavani somehow headed wide at the far post with a free net to aim at.
The crowd became more and more disgruntled as Villarreal deservedly broke the deadlock on 53 minutes, with Alcacer sliding in from a few yards out.
Gary Neville, the former United captain turned television pundit, had said after the Villa defeat that Solksjaer's side were "delivering moments, but those moments won't go for you in certain games".
On this occasion, Telles smashing volley and Ronaldo's winner brought much-needed joy, but questions remain as to whether Solskjaer lacks a general plan, relying too much on individual inspiration in an attempt to win games.
After visiting frontman Boulaye Dia almost bundled in late on, United's biggest-name individual made the difference - as Ronaldo delivered another unforgettable Champions League moment.
Player of the match
DanjumaArnaut Danjuma
Villarreal
Squad number15Player nameDanjuma
Squad number9Player namePaco Alcácer
Squad number4Player nameTorres
Squad number6Player nameCapoue
Squad number18Player nameMoreno
Squad number5Player nameParejo
Squad number21Player namePino
Squad number14Player nameManu Trigueros
Squad number8Player nameFoyth
Squad number3Player nameAlbiol
Squad number13Player nameRulli
Squad number12Player nameEstupiñán
Squad number16Player nameDia
Squad number20Player namePeña
Squad number23Player nameMoi Gómez
Squad number22Player nameMandi
Line-ups
Man Utd
Formation 4-2-3-1
1de Gea
20Dalot2Lindelöf19Varane27Telles
6Pogba39McTominay
11Greenwood18Bruno Fernandes25Sancho
7Cristiano Ronaldo
1de Gea20Dalot2Lindelöf19Varane27TellesBooked at 71minsSubstituted forFredat 89'minutes6PogbaSubstituted forCavaniat 75'minutes39McTominay11GreenwoodBooked at 68minsSubstituted forLingardat 89'minutes18Bruno Fernandes25SanchoSubstituted forMaticat 75'minutes7Cristiano RonaldoBooked at 90minsSubstitutes
3Bailly8Mata9Martial14Lingard17Fred21Cavani22Heaton26Henderson31Matic34van de Beek36ElangaVillarreal
Formation 4-3-3
13Rulli
8Foyth3Albiol4Torres18Moreno
5Parejo6Capoue14Trigueros Muñoz
21Pino9Alcácer15Danjuma
13Rulli8Foyth3AlbiolBooked at 68minsSubstituted forMandiat 73'minutes4Torres18MorenoBooked at 59minsSubstituted forPeñaat 73'minutesBooked at 90mins5Parejo6Capoue14Trigueros MuñozSubstituted forEstupiñánat 61'minutes21PinoBooked at 67minsSubstituted forGómez Bardonadoat 73'minutes9AlcácerSubstituted forDiaat 58'minutes15DanjumaSubstitutes
1Asenjo2Pérez Martínez10Iborra12Estupiñán16Dia20Peña22Mandi23Gómez Bardonado24Pedraza28Iosifov35JörgensenReferee:Felix ZwayerAttendance:73,130Live Text
Match ends, Manchester United 2, Villarreal 1.
Second Half ends, Manchester United 2, Villarreal 1.
Cristiano Ronaldo (Manchester United) is shown the yellow card for excessive celebration.
Goal! Manchester United 2, Villarreal 1. Cristiano Ronaldo (Manchester United) right footed shot from a difficult angle on the right to the bottom right corner. Assisted by Jesse Lingard.
Foul by Edinson Cavani (Manchester United).
Etienne Capoue (Villarreal) wins a free kick in the defensive half.
Jesse Lingard (Manchester United) wins a free kick in the defensive half.
Foul by Pervis Estupiñán (Villarreal).
Attempt saved. Jesse Lingard (Manchester United) left footed shot from the centre of the box is saved in the top right corner. Assisted by Cristiano Ronaldo with a cross.
Hand ball by Etienne Capoue (Villarreal).
Attempt saved. Scott McTominay (Manchester United) left footed shot from the centre of the box is saved in the top right corner.
Rubén Peña (Villarreal) is shown the yellow card for a bad foul.
Nemanja Matic (Manchester United) wins a free kick in the attacking half.
Foul by Rubén Peña (Villarreal).
Substitution, Manchester United. Jesse Lingard replaces Mason Greenwood.
Substitution, Manchester United. Fred replaces Alex Telles.
Attempt blocked. Juan Foyth (Villarreal) right footed shot from the right side of the box is blocked.
Corner, Villarreal. Conceded by Alex Telles.
Attempt blocked. Boulaye Dia (Villarreal) left footed shot from the right side of the six yard box is blocked.
Attempt saved. Boulaye Dia (Villarreal) with an attempt from the centre of the box is saved in the centre of the goal.