Madrid - Lionel Messi scored on his 500th Barcelona appearance as the European champions moved back to the top of the table with a 4-0 win over Real Betis as La Liga returned from a curtailed winter break on Wednesday.
Atletico Madrid remain level on points with Barca thanks to two goals in the final two minutes from Angel Correa and Antoine Griezmann to emerge 2-0 victors at Rayo Vallecano.
And Cristiano Ronaldo scored twice and missed a penalty as Real Madrid eased the pressure on under-fire coach Rafael Benitez with a 3-1 win over Real Sociedad to stay two points behind the leaders.
Barca celebrated their fifth trophy of 2015 before kick-off after adding the Club World Cup to their haul last time out with Messi captaining the side in the absence of Andres Iniesta.
"It has been a spectacular year and we wanted to finish it this way," said Messi.
"It will be difficult to improve on what we have done, but we always try. We have a great squad that are desperate to continue winning."
Yet, on a day dominated by controversial refereeing decisions, they were handed a gift to open the scoring after a decent start by Betis.
Antonio Adan clearly played the ball before catching Messi as he punched the ball to safety, but referee Inaki Vicando Garrido surprised everyone by pointing to the spot.
Neymar hit the bar with the resulting penalty, but Heiko Westermann could only turn the rebound into his own net under pressure from Ivan Rakitic.
From Betis' misfortune the floodgates opened as a lovely one-two between Neymar and Messi allowed the later to tap home his 425th goal for the club.
Luis Suarez added a third with a cool finish from Sergio Busquets's pass inside the first minute of the second-half.
And the Uruguayan rounded off the scoring seven minutes from time as Barca set a new record tally for the calendar year of 180 goals.
At the Santiago Bernabeu, Ronaldo recovered from a terrible start after blasting his first penalty of the day over the bar to put Madrid in front from another spot-kick just before half-time.
Bruma levelled for an injury-hit Sociedad minutes after the break, but Ronaldo delivered when his side needed a goal once more to restore the lead 23 minutes from time before Lucas Vasquez added a late third.
"We controlled the game and had a lot of chances, which, if we had taken them, would have made the second-half more comfortable," said Benitez.
"I congratulate the players for their attitude from start to finish. We worked hard, reacted well and got the three points."
Rumours over Benitez's future refuse to go away after a disappointing first six months in charge at the Bernabeu with the former Liverpool boss even claiming there is a media conspiracy against him on Tuesday.
But his side had luck on their side in the first-half as Sociedad's lost top-scorer Imanol Agirretxe and playmaker Sergio Canales to injury and saw referee Jose Luis Gonzalez award Madrid two controversial penalties.
The first spot-kick was given for an apparent push by Yuri Beriche on Benzema at the back post. Yet, for the first time in his Madrid career, Ronaldo failed to even hit the target from the spot as he blasted wildly over.
The World Player of the Year made amends three minutes before half-time when he converted his second penalty after Yuri was again penalised for blocking Gareth Bale's cross with an outstretched hand.
Despite the adversity they faced, Sociedad kept the ball off Madrid for long spells and hauled themselves level in spectacular style four minutes after the break when Bruma curled home his first league goal for the club into the top corner.
Yet, despite all their troubles, Ronaldo remains ever reliable source of goals and he delivered once more with a sweetly struck volley from Marcelo's corner for his 25th goal of the season.
And Vazquez ensured all three points when he coolly controlled and finished Bale's fine cross to make it 3-1 three minutes from time.
Atletico looked to be heading for a second consecutive disappointing result after losing 1-0 at Malaga before the 10-day winter break as Rayo's defence - fresh from conceding 10 to Real Madrid last time out - stood firm for 88 minutes at Vallecas.
However, Diego Simeone's substitutions swung the game in Atletico's favour as Thomas Partey teed up Correa to smash home his first goal in three months.
And another substitute Jackson Martinez then played in Griezmann to register his 13th goal of the season with a lovely dinked finish two minutes later.