The two teams were level 1-1 after Hakim Ziyech's 27th-minute goal was cancelled out by Villarreal's Gerard Moreno in the 73rd minute, taking the match into extra time.
Zinedine Zidane rested some first-team regulars, but a side containing Lucas Vazquez, Marcelo, Isco and Casemiro should still have been far too strong for their rivals.