Malaga beat local rivals Sevilla, while Marseille moved joint-top of Ligue 1 with a win over nine-man Toulouse.
European football round-up: Lazio close gap on Inter with win
Malaga shrugged off a poor first-half performance to beat local rivals Sevilla 2-0 at the Ramon Sanchez Pizjuan and consolidate fourth spot in the Primera Division.
The visitors were lucky to be on level terms at the break after Alvaro Negredo hit the post for a dominant home side after just two minutes.
And Sevilla paid for their profligacy in the second period as Martin Demichelis headed Malaga in front and Eliseu made it 2-0 from the penalty spot after Federico Fazio saw red for bringing down Joaquin Sanchez.
Athletic Bilbao moved nine points clear of the relegation zone thanks to a 1-0 win at Real Mallorca.
Aritz Aduriz's 11th-minute header proved the difference, although Athletic were just as thankful to goalkeeper Gorka Iraizoz for the three points as Mallorca stumbled to their ninth defeat in 11 league games.
Diego Castro's penalty deep into stoppage time salvaged a 1-1 draw for Getafe against Osasuna in a game desperately lacking in quality at the Alfonso Perez Coliseum.
The match only came to life after Emiliano Armenteros had been sent off for the visitors 12 minutes from time for a wild lunge on Juan Valera.
Despite having lost a man, Jose Mendilibar's men seemed set for all three points when Kike Sola weaved a way through the Getafe defence to slot home six minutes from time.
But Osasuna were cruelly denied a second away win of the campaign in the final minute of stoppage time as Oier was harshly adjudged to have handled inside the area and Castro stroked home from the spot.
Finally, Granada and Real Sociedad battled out a goalless draw in a match of precious few chances at the Estadio Nuevo Los Carmenas.
Oscar Cardozo claimed a hat-trick as Benfica thrashed mid-table Maritimo 4-1 to move three points clear of Porto at the top of the Portuguese Liga.
Rodrigo Antonio silenced the home crowd when he gave the visitors a 26th-minute lead at the Estadio da Luz, but Cardozo equalised eight minutes later and took centre stage after the interval with two goals in four minutes midway through the second half - the first from the penalty spot after Valentin Roberge had been sent off.
The hat-trick hero was replaced by Rodrigo three minutes from time, and the substitute made his mark within 60 seconds by rounding off the rout.
Elsewhere, fourth-placed Rio Ave suffered a 3-1 defeat at Beira Mar.
Goals at either end of the first half from Serginho and Javier Balboa put the hosts in control, and Joaozinho sealed matters 13 minutes from time after Ricardo Tarantini had given the visitors a glimmer of hope just after the hour.
Cedric Soares' second-half strike earned Sporting Lisbon a 1-1 draw at Nacional, cancelling out Israel's first-half opener.
Gil Vicente had looked on course for only their third win of the campaign when they went 2-0 up at Olhanense through goals from Kalidou Yero and Luis Carlos, but Nuno Piloto and Brandao salvaged a draw for the hosts to keep the teams locked together on points in the lower reaches of the table.
Andre-Pierre Gignac's first goal since his return from injury moved Marseille level at the top of Ligue 1 with a 1-0 win at nine-man Toulouse.
Gignac returned from a broken foot off the bench late in the midweek win at Bastia and saw Cheikh M'Bengue and Franck Tabanou sent off before his 47th-minute introduction tonight.
Andre Ayew had also missed a first-half penalty but France striker Gignac decided the contest against his former club on 68 minutes.
Champions Montpellier moved into the top half of the table for the first time this season as they secured a third consecutive win - 4-0 over Bastia.
After Marco Estrada's sensational 14th-minute opener, second-half goals from Emanuel Herrera, Younes Belhanda and Anthony Mounier ensured the recent resurgence of Rene Girard's side has now started to gather real momentum.
The 4-0 score line was Montpellier's biggest win of the campaign - beating the 3-0 success over Ajaccio only last weekend - as their disappointing start has started to fade from memory.
Sixteen-year-old winger Neal Maupay came off the bench to score a dramatic late winner as Nice came from two goals down to beat Evian 3-2 at the Stade Municipal du Ray.
Maupay was given his Ligue 1 debut in the 87th minute and duly rewarded manager Claude Puel, who saw his side move up to fourth, with a volley in the first minute of stoppage time.
That looked unlikely when strikes from Yannick Sagbo and Cedric Barbosa put Evian two goals to the good inside 13 minutes, but a goal in either half from Dario Cvitanich levelled proceedings before Maupay notched late on.
Troyes picked up only their second league win of the season, 3-2 over Ajaccio to move off the bottom of the table - but came close to throwing away the victory at the death.
Jean-Marc Furlan's side headed into the game having collected just nine points from 17 games, but raced into a three-goal interval lead thanks to strikes from Stephane Darbion, Benjamin Nivet and Fabien Camus at the Stade de l'Aube.
The visitors finally got going in the closing stages - pulling one back in the 89th minute through substitute Paul-Bastien Lasne and reducing the deficit further in stoppage time when Johan Cavalli's free kick flew in off the head of Troyes defender Granddi Ngoyi - but they had left their charge too late.
Brest claimed their first away win, 2-1 at fellow strugglers Sochaux.
Cedric Bakambu gave the home side the lead in the second half but goals from Kamel Chafni and Eden Ben Basat turned things in Brest's favour.
A first goal in six games was not enough for Reims to claim a much-needed win as they drew 1-1 with Lille.
Despite the recent profligacy of Hubert Fournier's team they led with just six minutes on the clock through Anthony Weber.
However, just when they looked on course to claim a first win since October 6, the home side conceded an equaliser to Dimitri Payet.
PSV Eindhoven returned to the top of the Eredivisie but they did so on goal difference only after being held to a 1-1 draw at NEC Nijmegen.
The pressure was on PSV after FC Twente had moved to the summit with victory last night and it seemed Marcel Brands' men were on course to regain their two-point advantage when Mathias Jorgensen put them in front in the 10th minute.
But they failed to add to their lead and it came back to haunt them when Victor Palsson struck 10 minutes from time to give NEC a share of the spoils.
Jozy Altidore bagged a brace as AZ Alkmaar ran out 2-1 winners at 10-man Zwolle.
The United States striker struck in the second and 34th minutes and although Denni Avdic halved the deficit after the interval, they were reduced to 10 men when Joey Van der Berg was dismissed.
Roda JC moved off the bottom of the table following a goalless draw at home to fellow strugglers NAC Breda.
Neither side could find the net but the point ensured the hosts moved above Willem II on goal difference.
There were also no goals between Groningen and VVV-Venlo, where the former were forced to play almost the entire match with 10 men after Leandro Bacuna was sent off in the sixth minute.
Lazio closed in on second-placed Inter Milan thanks to a late Miroslav Klose strike at the Stadio Olimpico which earned Vladimir Petkovic's side a 1-0 Serie A victory.
Inter hit the post twice in a game which came to life in the second half, but it was the Germany international who decided matters in the 82nd minute to reduce the gap between the two sides to a single point.
Inter's fifth defeat of the season left them four points behind leaders Juventus, who can extend their advantage at the top with victory over Atalanta tomorrow.
Antonio Di Natale was Udinese's saviour once again with his last-gasp goal earning the Friulians a 1-1 draw at home to Palermo.
Josip Ilicic put the visitors in front in the 33rd minute with Udinese goalkeeper Zeljko Brkic getting caught out by a divot on a far from regular pitch after recent snow.
Brkic then kept Udinese in the game before Di Natale struck to grab a point for the home side, who extended their unbeaten run to three games.
Dundee United captain Jon Daly's last minute penalty denied Inverness a memorable victory in an enthralling 4-4 draw at Tannadice.
United needed Daly to come to the rescue, despite initially being 3-0 up after just eight minutes.
Billy McKay's hat-trick followed by Gary Warren's 86th-minute header looked like earning the points for Inverness until Daly's spot-kick ensured the spoils were shared.
Victor Wanyama and Gary Hooper scored either side of the interval to give leaders Celtic a comfortable 2-0 victory over St Mirren.
Neil Lennon's side broke the deadlock in the 15th minute when Wanyama scored at the second attempt following a Charlie Mulgrew corner.
Seven minutes from time Saints succumbed again when Hooper struck from close range following another Mulgrew corner.
Motherwell moved up to second after battling from two goals down for a 3-2 win at Hibernian.
Eoin Doyle headed the hosts ahead five minutes before half-time and doubled his tally nine minutes after the break when he raced onto Paul Cairney's high ball and rocketed a shot past Darren Randolph.
Jamie Murphy tapped in from close range to cut the hosts' lead and he glanced home a leveller with 10 minutes remaining before substitute Robert McHugh converted Henrik Ojamaa's cross two minutes from time.
Hearts were twice pegged back in a 2-2 draw at St Johnstone.
The visitors opened the scoring through John Sutton and Andrew Driver gave them a 2-1 half-time advantage after Rowan Vine had levelled the scores, before Steve MacLean earned Saints a point.
Liam Kelly bagged a double - the first from the spot - in Kilmarnock's 2-0 win over Aberdeen, who had goalkeeper Jamie Langfield sent off for bringing down Borja Perez.
Iain Davidson's strike was cancelled out by Gary Glen as Dundee settled for a 1-1 draw at Ross County.
Bayer Leverkusen kept up their pursuit of Bundesliga leaders Bayern Munich. reducing the deficit to nine points with a 3-0 home win over Hamburg.
Two goals from the league's top scorer Stefan Kiessling and one from Andre Schurrle earned the side coached by Sami Hyypia and Sascha Lewandowski all three points.
The win guaranteed Leverkusen second spot going into 2013 - albeit some distance behind Bayern, who drew 1-1 at home to Borussia Monchengladbach last night.
Eintracht Frankfurt ended the year on a high note, toppling Wolfsburg 2-0 at the VW-Arena to move into third place going into the winter break.
A five-minute spell in the first half decided the game in Frankfurt's favour, with Alexander Meier putting them in front before Josue was sent off and Takashi Inui added a second.
Schalke's poor recent form continued as they ended the year with a 3-1 defeat at home to Freiburg, extending their winless run to six matches and increasing the pressure on under-fire coach Huub Stevens.
Despite taking the lead through Jefferson Farfan in the 20th minute, the Royal Blues fell to two goals from Jan Rosenthal and an Oliver Schmid effort as Freiburg moved above them in the end-of-year standings.
Rosenthal and Schalke striker Klaas Jan Huntelaar were both sent off in the final 10 minutes but there were no further goals, meaning Freiburg climbed to fifth and Schalke slipped to seventh.
Mainz came from behind to beat Stuttgart 3-1 at the Coface Arena to move above their opponents and into the top six.
Martin Harnik was credited with Stuttgart's opening goal, although Mainz goalkeeper Heinz Muller helped turn the forward's header into his own net in the 48th minute.
The home side responded well with a brace from Nicolai Muller before Elkin Soto wrapped up victory with the last kick of the game.
A delightful free kick from Ken Ilso earned Fortuna Düsseldorf a 2-1 home win over Hannover which lifted Norbert Meier's men nine points clear of the drop zone.
Dani Schahin gave the hosts the lead before half-time, but Mame Diouf brought the Reds level in the 69th minute. The game could then have gone either way before Ilso stepped up to curl in a 25-yard free kick in the 83rd minute to send the 48,000 fans in the Düsseldorf Arena wild with joy.
Finally, the Bavarian derby between Greuther Fürth and Augsburg ended 1-1 and with both sides a man down, as the hosts missed their last chance to pick up a home Bundesliga victory in 2012.
Augsburg went in front in the ninth minute through Sascha Molders, but Lasse Sobiech levelled for Mike Buskens' side.
Fürth captain Mergim Mavraj was then sent off, with Giovanni Sio following him for an early bath towards the end of a combative relegation battle which left both sides still staring the drop in the face.
Follow us @SprtNationalUAE