- Étienne Capoue (4')
- Samuel Chukwueze (42')
- Vinícius Júnior (57')
- Éder Militão (69')
- Dani Ceballos (86')
The 26-year-old midfielder delivered an assist for Madrid's first goal, created the opening for the second and scored the winner for the visitors who looked to be on the brink of elimination when they trailed 2-0 at half-time.
"I was annoyed, very annoyed," Madrid manager Carlo Ancelotti said. "They went ahead early, we took risks, they play the ball out well from the back, we weren't decisive in the duels.
"I told the team to wake up. They woke up well. It's the first half and the second, the first wasn't good, we can't play like that. But the reaction was spectacular, you never give up with this badge. But we can't get close to the bottom before reacting, that isn't good."
Villarreal moved quickly into the lead with a brilliant move by Etienne Capoue in the fourth minute, who volleyed into the far post.
They dominated the first half and extended their lead in the 41st minute when Gerard Moreno found Samuel Chukwueze ghosting between two defenders and delivered a brilliant pass to the Nigerian winger who powered his shot into the top left corner.
Ceballos came off the bench in the 56th minute to play a pivotal role in all of Real Madrid's goals.
One minute after coming on, he delivered a superb through ball to Vinicius Jr who scored from point-blank range.
Twelve minutes later he crossed to Karim Benzema whose towering header was denied by Filip Jorgensen but allowed Eder Militao to score from the rebound. In the 86th minute Ceballos slotted a perfect low shot from just inside the box to give Real Madrid the win.
After their 2-1 LaLiga defeat by Villarreal two weeks ago and a 3-1 loss to Barcelona in the Spanish Super Cup final last Sunday, Real Madrid needed a win to rebuild their confidence as they bid for their first triumph in the competition since 2014.
- Jesús Gil Manzano