The Laliga title race was blown wide open on Sunday after leaders Atletico Madrid went 2-1 down to Athletic Club Bilbao.
The results mean that FC Barcelona, in third, is just two points off Atleti having played a game less than the Diego Simeone side.
Alejandro Berenguer Remiro put Bilbao ahead in the eighth minute but Stefan Savic looked to have secured a point for Atletico with a 77th-minute equalizer but Inigo Martinez had other ideas as he restored the hosts lead four minutes from time.
Earlier in the day, Barca did their part in the race with a 2-1 win at Villarreal.
Villareal's Samuel Chukwueze handed his side the lead in the 26th minute but a quickfire double from Antoine Griezmann turned things around before Manu Trigueros was sent off for a lunging tackle on Lionel Messi.
In France, Lille jumped back above Paris St Germain to the top of the table by coming from two goals down to beat fourth-placed Lyon 3-2.
In the Bundesliga, second-placed RB Leipzig returned to winning ways with a 2-0 victory over Stuttgart. Borussia Monchengladbach thumped struggling Arminia Bielefeld 5-0, with three goals coming in the first 20 minutes.
In Serie A, Atalanta climbed into second place, 11 points behind Inter Milan, with a thumping 5-0 victory over Bologna.
Fourth-placed Juventus were held to a 1-1 draw by Fiorentina. Dusan Vlahovic gave the Florentine side the lead from the penalty spot but it was canceled out by Alvaro Morata just after half-time.