Thierry Henry scored Barcelona's last goal of 2008 and he got their first of 2009 as they stayed on course to reach the magic 100 points total for the season – win their next two games and they will reach the halfway stage of the campaign on exactly 50 points.
It was Henry's ninth league goal of the season, and with 51 goals scored Barça are also on course to beat La Liga's record for the number of goals in one season held by John Toshack's Real Madrid, who hit 107 in the 1989-1990 campaign.
With Barcelona chasing records Real Madrid are left chasing the leader's tail. They are 12 points from the top after beating Villarreal 1-0. Juande Ramos handed debuts to Lassana Diarra, signed from Portsmouth in December, and the former Ajax striker Klass-Jan Huntelaar, but Arjen Robben was the star.
Madrid can register only one of their new signings for the Champions League and Diarra started well, although he struggled with Spanish refereeing's peculiar interpretation of football as a non-contact sport. Twice he was penalised for fouls on Robert Pires that would have gone unpunished in the Premier League.
Robben hit the bar on 12 minutes and then put Real ahead with a curling shot from the edge of the box on the half-hour. Iker Casillas somehow tipped Giuseppe Rossi's header over as Real held on in the second half.
For Barcelona it was a rejuvenated Henry who got the first and the midfielder Yaya Touré who scored a superb third. Back in September you would have tipped both men to have featured in the January transfer window, but Henry is starting to look part of the Nou Camp furniture and Touré showed why Barcelona do not want him to leave. "He's a diesel type of player" said the Barcelona coach, Pep Guardiola. "He needs time to warm up and get going. He needs games, and eight days without matches can work against him but he got into the game and scored a great goal."
Touré it was who was caught cold in possession on the quarter hour as Real Mallorca, who have not won away for three months, took a shock lead through Aritz Aduriz.
But, Yaya, brother of Arsenal's Kolo Touré drove his team on and when Henry slammed in the equaliser, darting in from the left to finish after Carles Puyol had flicked on Xavi's corner, there was only going to be one winner.
Fortune favoured Barça when the linesman's flag stayed down as first Eidur Gudjohnsen and then Andres Iniesta appeared off-side in the move that saw Iniesta, returning from a two-month injury lay-off, put the home side ahead.
But there was nothing fortuitous about the third, with Touré jinking his way past three players inside the Mallorca six-yard box and thumping past German Lux. It was a goal worthy of a watching Diego Maradona.
The Argentina coach will arrive in England next Saturday and watch Liverpool's Javier Mascherano against Stoke City before seeing Carlos Tevez play for Manchester United against Chelsea.
He had planned to watch Leo Messi in action for Barcelona but the striker ended up sitting next to him in the directors' box after arriving back from the mid-winter break too late to be involved in the game.
"It is true that the players are scoring lots of goals" said Guardiola. "They are good players. But we are not even at the half-way point of the season yet. Nobody was ever crowned champions in January.
"We have to keep going from game to game. Mallorca came to close us down, defend well and play as a unit. It was a potential slip up for us but we have come through it."
Barcelona are in Spanish Cup action this week against Atletico Madrid, who lost 3-1 to Valencia. Both Diego Forlan and David Villa scored penalties but the outstanding David Silva was the difference between the two sides with an excellent double to keep Valencia 11 points behind Barcelona.
Barcelona (4-3-3): Valdes; Puyol, Sanchez (Alves 56), Marquez (Sylvinho 70), Abidal; Gudjohnsen, Toure, Xavi, Hleb (Iniesta 66), Eto'o, Henry. Substitutes not used: Pinto, Keita, Bojan, Busquets.
Real Mallorca (4-4-2): Lux; Josemi (sent off 89), Nunes, Ramis, Corrales; Scaloni (Cléber 77), Mario (Jurado 83), Marti, Varela; Arango, Aduriz (Webo 83). Substitutes not used: Aouate, Navarro, AyozeReuse content