Real Madrid bounced back from their Champions League heartbreak by crushing 10-man Athletic Bilbao 5-2 on Saturday to cut Barcelona's lead at the top in Spain to just three points.
Pep Guardiola's Barcelona, top of the table for most of the season, can restore their lead to six points with victory over Almeria on Sunday.
Real saw their Champions League dreams go up in smoke on Tuesday at Anfield as Liverpool overran them in a humiliating 4-0 win and they let out their frustration at San Mames.
Dutch forward Klaas-Jan Huntelaar, cup-tied for the Champions League, scored twice (47min, 60) to turn the game in Real's favour after Bilbao had come from two goals down to level.
Arjen Robben put Real ahead before Argentine centre-back Gabriel Heinze added another heading in a 34th minute free-kick.
Heinze scored an own goal minutes later and Fernando Llorente levelled despite Bilbao being reduced to 10 men with Francisco Yeste harshly sent off for pushing goalkeeper Iker Casillas.
Huntelaar then took centre stage with a second half brace before substitute Gonzalo Higuain completed the scoring from the penalty spot.
Casillas was hoping for a quieter evening after being overworked against Liverpool and was called into action early on to punch away a Yeste free-kick.
Real looked fragile in defence but Robben shot them into a 22nd minute lead showing a terrific burst of speed to get behind the Bilbao defence before smashing home off the underside of the crossbar.
Heinze headed Real 2-0 up after 33 minutes and celebrated wildy. However, his joy was shortlived as he scored an own goal three minutes later as he tried to intercept a cross.
It summed up an eventful week for the former Manchester United man who conceded a dubious handball penalty in the Liverpool game.
Moments later, Yeste was red-carded for pushing over Casillas who made the most of the shove.
Bilbao were furious about the decision believing a yellow was punishment enough and Casillas was jeered throughout the match.
Llorente equalised close to half-time for Bilbao with Casillas at fault for not keeping out his header.
Huntelaar then showed why Real paid Ajax 20 million euros for his services with two clinical finishes - especially his first which was a clever chip on the run - to keep Real on Barcelona's heels.
Gonzalo Higuain added the fifth goal from the penalty spot five minutes from time.
Earlier a superb individual goal from substitute Pablo Hernandez saved 10-man Valencia from defeat against Recreativo Huelva although the 1-1 draw does little to aid their Champions League push.
Cash-strapped Valencia, who have collected just seven points from the last 30, are now five points behind fourth-placed Villarreal who have played one game less.
Valencia fell behind to a Javier Camunas goal in the 54th minute and then had centre-back Carlos Marchena sent off for two bookable offences.
However, Hernandez netted an 82nd minute equaliser with a delightful chip to salvage a point at the Mestalla Stadium.
"We didn't win even though we deserved to when you consider the chances we had," said Valencia coach Unai Emery.
"We had a lot of chances and didn't take them but I am more worried when we don't create chances like in the first half."
Valencia were again without key striker David Villa through a knee injury and they may have to get used to it with the Spanish international set to be auctioned off to the highest bidder to ease the club's acute financial problems.
Villa's agent has insisted that his client will be staying in Spain with the two powerhouses Barcelona and Madrid ready for a tug-of-war for his services.