Lionel Messi scored a thunderous 84th-minute winner as leaders Barcelona came back to overcome bottom side Osasuna 3-2 on Sunday and restore their 12-point cushion over second-placed Real Madrid.
Osasuna, with just two wins in the whole campaign, looked poised to cause the biggest upset of the season after goals from Miguel Flano (62 min) and Walter Pandiani (72 min) had cancelled out Samuel Eto'o's 44th minute opener.
Barca were facing their first defeat since the opening day of the season but Xavi marked his 300th league appearance with an 80th-minute equaliser. Four minutes later, Messi cut inside and fired a ferocious left-footed shot into the corner for his 11th goal of a great season.
"We had some luck at the end but I think we deserved it," said Xavi. "The pitch and the climate (fog and rain) didn't help but we showed the right attitude to get the win."
Barca coach Pep Guardiola praised Messi. "The third goal was all about Messi and his quality," said Guardiola. "The talent of our players made the difference in the end but this is a great lesson for us. If we let our guard down things like this can happen. We played with real fire and needed some luck to come through a complicated match."
Real had celebrated a 3-0 win over Real Mallorca hours earlier and must have thought Barca were going to drop at least a point but Messi had other ideas. Last season Real registered a record 47 points at the mid-way point of 19 games and Barca have equalled that points total and have a game in hand to beat the record.
Real captain Raul celebrated his 500th league appearance in the famous white shirt with a goal as the champions climbed to second with a 3-0 win at Mallorca. It was Real's first away win in the league since October 18 when they beat Atletico Madrid 2-1.
Arjen Robben opened the scoring in the third minute before Raul, 31, struck on 17 minutes with his seventh goal of the campaign and Sergio Ramos netted a third in the second half. "Scoring so early on made it a lot easier for us," said Real coach Juande Ramos.
"Mallorca had to take more risks and then the second goal arrived quickly. We had the match under control because of the opening goal and they had to change their strategy and open up. A team like Real are capable of controlling games like this."
Real legend Raul now stands sixth in the Spanish league appearance standings just 24 matches from equalling the club record held by Manuel Sanchis. Former Barcelona goalkeeper Andoni Zubizarreta holds the all-time appearance record with 622 league outings.
Atletico Madrid lost 3-2 at home to struggling Athletic Bilbao to increase the calls for coach Javier Aguirre's head. Bilbao came from a goal down to stun Atletico whose misery was summed up when Maniche was sent off for a second yellow card in the closing stages.
Atletico are now four points behind fourth-placed Valencia and despite guiding the club into the last 16 of this season's Champions League, Aguirre is clinging to his job. "Of course it hurts to lose, not play well and have the public air their frustration at me or the players," said Aguirre. "We have taken two steps back in the league and the cup but we have to continue fighting to the death in both."
For Real, Dutch forward Klaas-Jan Huntelaar, who made his debut last weekend, was dropped to the bench with Gonzalo Higuain, back from a bout of tonsilitis, partnering Raul in attack. Higuain had an immediate impact, lofting a third minute pass to Robben who was just onside as he raced clear before slotting home to score for the second consecutive game.
Higuain was the provider again on 17 minutes powering down the right flank before fizzing in a cross that Raul flicked in with his trailing leg. Ramos volleyed in a third on 66 minutes and Real kept a third successive clean sheet to suggest things are improving under new manager Ramos.