Real Madrid overcame the early dismissal of Sergio Ramos to beat Rayo Vallecano 2-0 at the Bernabeu.
The Spain defender was shown a red card in the 18th minute after collecting two soft bookings in the space of 30 seconds.
The first came after he brushed past Roberto Trashorras with the Rayo player theatrically going to ground and the second for a handball after Jose Manuel Casado fired a cross against his arm from close range.
By the time he departed, Madrid were already 2-0 up. Alvaro Morata, on his first league start, tapped home Mesut Ozil's right-wing cross in the third minute and Ramos himself grabbed the second with a powerful header from Ozil's inswinging free kick.
Rayo had plenty of the ball in the second half but could not find a way past Madrid goalkeeper Diego Lopez.
Madrid remain third, four points behind city rivals Atletico and 16 adrift of runaway leaders Barcelona.
Atletico were impressive 3-0 winners at Real Valladolid earlier in the evening.
Radamel Falcao's early opener was added to by Diego Costa, back in the side following a suspension, with Cristian Rodriguez adding a late third as Diego Simeone's men picked up their first away win since November 18.
Ten-man Valencia claimed an unlikely 2-0 win to add to struggling Real Mallorca's relegation worries.
Things looked to be going wrong for the hosts when a slow start was compounded by having midfielder Tino Costa sent off in the 28th minute.
But Mallorca could not take advantage and went behind in the 59th minute when Ricardo Costa headed Valencia in front.
Roberto Soldado doubled the lead in the 81st minute to boost his side's top-four hopes and leave Mallorca rooted in the bottom three.
Real Sociedad missed a chance to gain ground in their bid to qualify for the Europa League by failing to beat Levante at home.
Both goals came from penalties in the first half, scored by Carlos Vela for the hosts and Michel for the visitors, who played most of the second half with 10 men after left-back Nikos Karabelas was sent off for picking up two bookings.
Espanyol's remarkable revival under coach Javier Aguirre continued as a solitary Sergio Garcia goal earned the Catalan club a third consecutive league win.
Real Betis, though, are on the slide having failed to win in five attempts and Pepe Mel watched his charges struggle to create a handful of half-chances at the El Prat.
The hosts, who were perhaps unlucky not to win by a larger margin, climb to 12th in the table ahead of a daunting trip to Atletico.
Paris St Germain saw their lead at the top of Ligue 1 slashed in half after they suffered a surprise 3-2 defeat at lowly Sochaux while nearest challengers Lyon thrashed Bordeaux 4-0 away from home.
PSG had looked to have taken a stranglehold on the title race after a run of four successive victories saw them open a six-point gap at the summit going into this weekend's fixtures.
However, with new signing David Beckham's debut still on hold while he gains match fitness and the in-form Lucas Moura injured, Carlo Ancelotti's men came unstuck against relegation-battling Sochaux at the Stade Bonal.
Alex gave the league leaders a 29th-minute lead but Sochaux hit back soon after to level through Sebastian Roudet before Giovanni Sio put the home side ahead in the 54th minute.
An enthralling encounter looked to have swung back PSG's way when they equalised through Blaise Matuidi 14 minutes from time but, rather than the big-spending Parisians going on and finding a winner, it was Sochaux who snatched a deserved victory thanks to substitute Cedric Bakambu's goal six minutes from time.
That defeat meant PSG's advantage at the top of the table had been cut back to three points by Lyon, who saw off Bordeaux earlier in the day.
Two goals by Clement Grenier, one from the penalty spot, and further strikes from Alexandre Lacazette and Gueida Fofana earned Lyon their first four-goal victory at the Stade Chaban-Delmas since 1977.
In the day's other match, fifth-placed St Etienne were held to a 1-1 draw at struggling Reims.
St Etienne took a 10th-minute lead through Pierre-Emerick Aubameyang but Gaetan Courtet salvaged a point for Reims with an equaliser 14 minutes from time.
Benfica needed a penalty deep in stoppage time to seal a 1-0 win over Academica that keeps them level-pegging with Porto at the top of the Liga standings.
The hosts dominated possession but could not convert their superiority into goals until four minutes into injury time when Nicolas Gaitan was fouled in the area and Rodrigo Lima stepped up to fire home the resulting penalty.
There was still time for more late drama as Helder Cabral saw red.
Third-placed Pacos Ferreira slipped 14 points off the leading duo as they were held to a 1-1 draw at home by Nacional.
Semedo Cicero fired Pacos in front on 22 minutes but Bruno Moreira levelled 12 minutes from the end.
Sami and David Simao scored in the first half to lift Maritimo to a 2-1 win over Estoril, who replied through Evandro Goebel just before the hour.
Both teams ended with 10 men as Maritimo's Suk Hyun-jun and Yohan Tavares of Estoril picked up second bookings after the break.
Leonel Olimpio's eighth-minute penalty saw Guimaraes to a 1-0 win over bottom side Moreirense, while Vitoria Setúbal were victors by the same score line at Olhanense, Paulo Tavares with the only goal after 81 minutes.
Napoli missed a golden opportunity to close the gap on Serie A leaders Juventus to just two points as plucky Sampdoria forced a goalless draw at the San Paolo.
Goalkeeper Sergio Romero was in particularly inspired form as Delio Rossi's men claimed another valuable point in their mission to book a second season in the top flight, with Samp spurning several chances to win through young striker Mauro Icardi.
Napoli's forward line suffered from a rare lack of cutting edge and ended the day four points behind Juve, who were surprised by a 1-0 defeat to Roma last night.
In the day's late game, Fiorentina rejoined the hunt for a Champions League place with a resounding 4-1 win over Inter Milan at the Stadio Artemio Franchi.
Two goals apiece from Adem Ljajic and Stevan Jovetic earned the Viola all three points in arguably their most impressive performance of the season.
Vincenzo Montella's side gave Inter no chance at all in a totally one-sided game, although Antonio Cassano did restore some pride for Inter with a fine consolation goal in the 86th minute.
Catania, too, are back in contention for a European berth after edging a third consecutive home victory in downing struggling Bologna 1-0.
Sergio Almiron broke the deadlock just before half-time and the Elefanti held on to wrest seventh place back from Roma.
Bologna had won the reverse fixture 4-0 in September but failed to take their chances to widen a five-point gap above the relegation zone, with Alessandro Diamanti especially wasteful.
Udinese, meanwhile, lost ground on their European rivals after two gilt-edged chances to force a draw went begging at the end of a 1-0 defeat at Genoa.
Davide Ballardini earned his second win since replacing Luigi Del Neri as Genoa boss when Juraj Kucka nodded the hosts ahead in the first half.
Both Mehdi Benatia and Alexander Merkel were then found guilty of missing easy chances for Udinese in stoppage time.
Two goals from Marco Sau lifted Cagliari away from the relegation zone and left Pescara in real danger as the Sardinians won 2-0 at the Stadio Adriatico.
After a tight first half in which both sides took a cautious approach, Cagliari emerged with more conviction and Sau struck twice early in the second half to earn the points.
Pescara ended the game with 10 men with Vladimir Weiss sent off in stoppage time as the home fans made their feelings heard.
Elsewhere, an 87th-minute goal by Valter Birsa guided Torino to a 2-1 victory over Atalanta as they won for the first time in four Serie A games.
Alessio Cerci opened the scoring just before half-time but German Denis equalised from the penalty spot, with Birsa slotting home Matteo Darmian's cross to win it.
Ajax closed the gap on Eredivisie leaders PSV Eindhoven to three points with a 2-0 win at RKC Waalwijk as Feyenoord slipped further out of title contention.
Ajax had the points sewed up by half-time as Niklas Moisander put them ahead after 22 minutes and Christian Eriksen doubled the lead five minutes before the break.
Feyenoord went down to a shock 3-2 defeat at PEC Zwolle, who moved out of the bottom three.
A Graziano Pelle own goal after two minutes gave the hosts the perfect start and Darryl Lachman added a second just five minutes later.
Pelle made amends by scoring twice in two minutes to bring the game level before the break, but Denni Avdic grabbed the winner for PEC with 15 minutes to go.
Defeat left the Rotterdammers in fourth place, six points off top spot.
Vitesse Arnhem beat FC Groningen 2-0 thanks to goals from Mike Havenaar (53) and Wilfried Bony (63) with a penalty.
Heerenveen defender Joey van den Berg had a day to forget as he scored an own goal and was sent off in the first half of his side's 2-1 loss at ADO Den Haag.
Van den Berg's 24th-minute own goal cancelled out Sven Kums' 13th-minute opener and ADO completed the comeback when Santi Kolk put them ahead in the 36th minute.
Van den Berg was dismissed a minute before the break and his side could not mount a second-half fightback.
Stuttgart ended a four-match losing run in the Bundesliga with a 1-0 win at struggling Hoffenheim.
Martin Harnik scored in the third minute to earn the visitors their first points since the winter break.
Defeat left the hosts third from bottom and 10 points from safety.
Nurnberg scored a last-gasp equaliser through substitute Sebastian Polter as they twice came from behind to earn a 2-2 draw at home to Hannover.
Szabolcs Huszti put Hannover in front in the 41st minute and Didier Konan put them back in front in the 68th minute after Timm Klose had levelled eight minutes into the second half.
But Polter, on the field since the 82nd minute, netted with almost the last kick of the match to ensure a share of the spoils.