Andres Iniesta came off the bench to score as Barcelona battled to a 3-1 win over struggling Real Mallorca on Saturday, while Valencia moved up to second with an impressive home victory over Atletico Madrid by the same scoreline.
Barcelona, who stretched their lead at the top of the Primera Liga to 11 points, dominated early possession at the Nou Camp, but Aritz Aduriz stunned the home fans with a quarter of an hour gone when he gave the visitors a shock lead.
After robbing Yaya Toure in midfield, he outpaced defender Victor Sanchez and clipped the ball over the onrushing Victor Valdes into the net.
Thierry Henry equalised soon after with a neat finish from Xavi's deep corner before Barca coach Pep Guardiola introduced Iniesta in the second half after his eight-week injury layoff.
The Spain international was at the far post to tap home Eidur Gudjohnsen's low cross in the 75th minute and Toure made amends for his earlier mistake with a well-taken goal in added time after a mazy run.
The Mallorca players vigorously protested Iniesta's goal and television replays appeared to show Gudjohnsen had received the ball in an offside position before making the decisive pass.
"We can all make mistakes but it hurts when a refereeing error destroys a match," Mallorca coach Gregorio Manzano told reporters. "That mistake determined the outcome of the game."
Barca coach Guardiola said he was relieved to take the three points as matches immediately after the Christmas break were always dangerous.
"It was a real effort for us tonight but we showed patience, order and calm," he told reporters.
Barcelona are top with 44 points from 17 matches, 11 ahead of Valencia, who saw off rivals Atletico at the Mestalla thanks to two goals from David Silva and a David Villa penalty.
The home side had a string of early chances and took the lead with just over half an hour gone after the referee ruled that Raul Garcia had brought down Ruben Baraja in the area.
Villa sent Leo Franco the wrong way to score but replays showed there had been minimal contact between Garcia and Baraja.
Miguel Monteira created a second for Valencia shortly after when he played in Silva, who poked the ball past the goalkeeper, before Uruguayan striker Diego Forlan pulled a goal back from the penalty spot.
Silva added a third midway through the second period when he arrowed a powerful left-foot shot past Franco.
Atletico dropped to fourth on 30 points and Sevilla, who host bottom club Osasuna on Sunday, are in third on 31, two behind Valencia.
Champions Real Madrid, in fifth, play sixth-placed Villarreal at the Bernabeu on Sunday with the pair on 29 points.
Mallorca, the last team to win at the Nou Camp when they triumphed 3-2 in May, have 14 points and are one place above the relegation zone.
They finished with 10 men on Saturday after defender Josemi was shown a second yellow card for a foul just before the end.
Barca were without striker Lionel Messi, who arrived back late from his Christmas vacation and watched the match from the stands alongside his Argentina coach Diego Maradona.