Late goals from Cristiano Ronaldo and Jadon Sancho sent Manchester United into the last 16 of the Champions League and gave Michael Carrick the win in his first game as caretaker manager.
The first half looked like one might imagine a first half between the 12th-best team in Spain and eighth-best team in England would look: low on quality, high on nerves.
Neither side looked much like scoring but it was Villarreal who came closer, David de Gea making decent saves from Moi Gomez and Manu Trigueros.
After the break, little changed, with Villarreal the better side but not by much. De Gea was forced to make another fine save, again from Trigeuros, but amazingly, United improved when Carrick sent on Marcus Rashford and Bruno Fernandes, their two best players over the last two seasons.
Fernandes created United’s best chance – Geronimo Rulli saved well from Jadon Sancho – before, on 78 minutes, Fred caught Etienne Capoue in possession, putting Ronaldo in, and he lobbed beautifully to give United the win and score his sixth goal in five Champions League games this season.
Sancho then smashed home his first goal for the club with time running out, to make sure of the win.
Elsewhere, Robert Lewandowski scored for the ninth successive Champions League game as Bayern Munich maintained their 100% record in Group E against Dynamo Kyiv.
Poland striker Lewandowski gave Bayern the lead with an overhead kick after the ball fell loose in the area.
Kingsley Coman, who scored the winner in the 2020 final against Paris St-Germain, slotted home the second.
Denys Harmash scored Kyiv’s first goal of this year’s tournament but they were unable to find an equaliser.
Bayern were without Joshua Kimmich, Serge Gnabry, Jamal Musiala, Eric-Maxim Choupo-Moting and Michael Cuisance after the five players were in close contact with someone who has tested positive for Covid-19.
German newspaper Bild has reported that those players will not be paid during their quarantine period.
The 2020 winners started slowly but Lewandowski’s instinctive finish was a moment of brilliance typical of the striker.
A cross from the right popped up off a defender’s leg and the airborne striker volleyed home with his left foot.
The goal meant the 33-year-old became the first player to score in nine successive Champions League games twice, having also done it in August 2020. Ruud van Nistelrooy and Cristiano Ronaldo have both achieved the feat once.
Kyiv, who were unable to progress after picking up just one point in their first four games, hit the post at 1-0 when a Leon Goretzka back-pass was missed by Manuel Neuer as he attempted to clear.
Coman made it 2-0 just before half-time when he latched on to a Corentin Tolisso pass on the right wing and slotted into the top far corner.
Kyiv were excellent after the break, forcing Neuer into an early save, before substitute Harmash finished off a clever move to reduce the deficit.
They pushed for an equaliser, with captain Serhiy Sydorchuk seeing an effort from just outside the area saved and Viktor Tsyhankov grazing the outside of the post with a left-footed effort from distance.