Real Madrid and Manchester United dropped points in their drive for domestic glory, Real beaten by Almeria in the Primera Liga and United drawing with Tottenham Hotspur in England.
Inter Milan moved eight points clear in Italy after a 1-0 win over strugglers Empoli during which Patrick Vieira was sent off.
SPAIN
The brakes were put on Real Madrid's drive to the title when an ambitious and classy-looking Almeria ended their eight-match winning streak with a deserved 2-0 victory at the Estadio Mediterraneo on Saturday.
A first-half goal by centre back Juanito and a penalty from former Real Madrid reserve team striker Alvaro Negredo less than a minute after the break gave Almeria a memorable victory in their first season in the top flight in 27 years.
Barcelona took advantage of Real's slip-up to close within six points of the leaders after a 1-0 win at home to Osasuna on Sunday but they did not secure the win until two minutes from time when midfielder Xavi cracked in an unstoppable first-time shot.
Barca's city rivals Espanyol moved into third spot, eight points further back, after ending their three-match losing streak with a gritty 1-0 win at Getafe.
The gloom was lifted a little at Valencia when Ronald Koeman's side recorded their first league win in 10 outings with a 2-0 victory at Valladolid.
ITALY
Inter Milan beat strugglers Empoli 1-0 at home to climb eight points clear at the top of Serie A thanks to Sweden striker Zlatan Ibrahimovic's first-half penalty.
The Italian champions played most of the match with 10 men after France midfielder Patrick Vieira's 39th-minute red card for dissent.
Second-placed AS Roma lost 3-0 at Siena, who moved out of the relegation zone thanks to strikes by Mario Frick and Simone Vergassola and Max Tonetto's own goal.
Pavel Nedved's long-distance effort earned third-placed Juventus a 1-1 draw with Cagliari after defender Paolo Bianco had put the basement side ahead in Turin.
Brazilian striker Pato came off the bench to give AC Milan a 1-0 win at fourth-placed Fiorentina, their rivals for a Champions League slot, lifting them to fifth.
ENGLAND
The lead changed hands in the Premier League again with Arsenal leap-frogging champions Manchester United.
Emmanuel Adebayor continued his prolific run with two goals in Arsenal's 3-1 victory at Manchester City who lost for the first time at home in the league this season.
United, who kicked off after the Gunners, knew victory at Tottenham Hotspur would restore them to pole position but could only draw 1-1. They would have lost but for an equaliser in the fourth minute of stoppage time claimed by Carlos Tevez.
Arsenal have 60 points from 25 games with United on 58. Chelsea have 54 after drawing 1-1 at Portsmouth. Nicolas Anelka scored for Chelsea but Jermain Defoe equalised on his debut to deny Chelsea a 10th consecutive victory in all competitions.
Liverpool claimed their first league win since December 26, 3-0 at home to Sunderland but stay fifth behind Everton who drew 0-0 at Blackburn Rovers.
GERMANY
Bayern Munich began the second half of the Bundesliga season with an edgy 2-1 win at Hansa Rostock that proved very valuable, with their closest rivals dropping points.
Franck Ribery and Luca Toni got the goals that set Bayern off to victory on Friday in their first Bundesliga match after the six-week mid-season break.
Bayern lead the standings with 39 points from 18 matches, now three clear of Werder Bremen after they lost 2-1 at home to Bochum.
Hamburg SV, in third place at the halfway stage, could only draw 1-1 at home to Hanover 96.
They slipped to fourth on 33 points, behind Bayer Leverkusen on goal difference after Michael Skibbe's side sneaked a 3-2 win away to Energie Cottbus.
Schalke 04 looked in good shape, returning with a 4-1 win at home to champions VfB Stuttgart, two of the goals coming from Kevin Kuranyi.
NETHERLANDS
Danko Lazovic and Ibrahim Afellay scored first-half goals to earn PSV Eindhoven a 2-0 win at AZ Alkmaar and maintain an eight-point lead in the Dutch league with 11 matches remaining.
Ajax Amsterdam brushed aside a lacklustre Feyenoord with Johnny Heitinga opening the scoring after seven minutes before Klaas Jan Huntelaar added a double to seal the 3-0 victory.
Heerenveen moved into third, one point behind Ajax, following a 7-0 rout of mid-table Vitesse Arnhem with Roy Beerens twice on target.