Borja Valero volleyed the visitors in front in the 20th minute at the Sanchez Pizjuan before a Jesus Navas centre was turned into his own net by Villarreal midfielder Bruno Soriano in the 33rd to make it 1-1.
Javier Camunas hit the winner nine minutes from time and the stadium erupted in booing and whistling at the final whistle as the home players and coach Marcelino trooped off down the tunnel with heads bowed.
In Italy, Serie A leaders Juventus were frustrated in front of their own fans by a Siena side who were good value for a 0-0 draw. Juve did all the attacking in a one-sided game, but they failed to create any major chances as the Tuscans defended resolutely.
Giuseppe Sannino’s side arrived with a game-plan which they enacted perfectly to earn the point which keeps them three above the relegation zone.
Despite being held at home, Juve remain at the top of the table with rivals AC Milan also failing to win as they were held to the same scoreline against Napoli at the San Siro.
Milan ended the game with ten men after Zlatan Ibrahimovic was sent off midway through the second half, but Napoli failed to make the most of their one-man advantage and are still waiting for their first win in five games.
Fabio Borini scored twice as Roma secured an emphatic 4-0 triumph over Inter Milan at the Stadio Olimpico. Juan opened the scoring in the 13th minute and Borini doubled the hosts’ lead before half-time. Borini added a third shortly after the restart and substitute Bojan Krkic capped a great afternoon for Luis Enrique’s side by notching their fourth a minute from time.