Real Madrid missed the chance to go top of La Liga after losing 1-0 to Villarreal at El Madrigal.
Marcos scored the only goal of the game midway through the second half to earn a deserved win for Villarreal and leave Real a point off leaders, and arch-rivals, Barcelona.
Villarreal forced a succession of early corners, but their first real shot in anger arrived on 13 minutes when Iker Casillas spilled a volley from Marcos.
Real's response was generally limp, although Robinho should have shown more composure when blazing over the bar after a cross found its way to the far post.
The home side should have taken the lead on 31 minutes when Matias Fernandez lashed the loose ball off target after Casillas had made a fine double stop from Diego Forlan and Ruben Cani.
In the second half, Villarreal continued to apply the pressure and Ivan Helguera threw himself in the way of Marcos Senna's thumping shot from the edge of the area.
The breakthrough finally arrived on 68 minutes when Fernandez's pass sprung the offside trap and Marcos coolly finished past the onrushing Casillas.
In the closing moments, Sergio Ramos put a diving header wide of the target when unmarked from a free-kick, but Real rarely looked like scoring.
Atletico Madrid came from behind to salvage a 1-1 draw at home to Racing Santander.
The capital-based club are looking to launch a title assault, but endured a frustrating evening against mid-table Santander.
The visitors took the lead on 74 minutes when Nikola Zigic lashed home after latching on to Pedro Munitis.
But Atletico were level within two minutes when Jurado's free-kick was headed in by Pablo Ibanez.