Lionel Messi marked his 500th Barcelona appearance with his almost customary goal as Luis Enrique's side brushed aside Real Betis 4-0 to end the year top of La Liga.
The Argentine superstar won a controversial penalty just before the half-hour at Camp Nou when he was clattered into by Adan, although the Betis goalkeeper clearly punched the ball away before making contact with Messi.
With Messi receiving treatment, Neymar saw his spot-kick hit the crossbar, only for Heiko Westermann to divert the rebound in for an own goal under pressure from Ivan Rakitic and Luis Suarez.
Neymar then teed up Messi for a goal on his milestone appearance, before Suarez netted twice in the second half to secure Barca's position at the summit.
Atletico Madrid are level on points with Barca following their 2-0 win at Rayo Vallecano, which came courtesy of goals in the final three minutes from Angel Correa and Antoine Griezmann.
Their city rivals Real Madrid were less than convincing in a 3-1 victory over Real Sociedad at Santiago Bernabeu, Cristiano Ronaldo blazing a penalty over before converting a second spot-kick to give his side the lead.
The visitors pulled level thanks to Bruma's stunning effort seven minutes after half-time, but Ronaldo's excellent volley and Lucas Vazquez's fine touch and finish kept Madrid within two points of the leading duo.
Celta Vigo are five points behind Madrid in fourth after going down 1-0 at home to Athletic Bilbao - Raul Garcia's 71st-minute goal proving the difference.
At the wrong end of the table, bottom club Levante lost 1-0 at home to Malaga thanks to Duda's late winner while Las Palmas climbed out of the bottom three after a 4-1 thumping of Granada, who dropped into the relegation zone as a result.
Elsewhere, goals from Ciro Immobile and Ever Benega earned Sevilla a 2-0 home win over Espanyol, Eibar defeated struggling Sporting Gijon by the same scoreline thanks to Keko and Borja Baston, while the game between Getafe and Deportivo La Coruna ended goalless.