Lionel Messi's knack for finding the net continued for an 18th consecutive league match as Barcelona restored their 13-point lead in La Liga.
A late own goal from Bayer Leverkusen's Philipp Wollschied put Bayern Munich on the brink of the Bundesliga title and Manchester United tightened their grip on the Premier League as rivals Manchester City lost at Everton.
Messi scored twice in Barcelona's 3-1 win over Rayo Vallecano on Sunday as they restored their 13-point lead at the top of La Liga with 10 games left.
He set up David Villa for the opener and the Spain striker returned the favour twice, helping the World Player of the Year take his season La Liga tally to 42 goals.
Champions Real Madrid were second after twice coming from behind to beat Real Mallorca 5-2 at home on Saturday. Three goals in six minutes at the start of the second half did the damage and Gonzalo Higuain scored twice.
Atletico Madrid were a point further back in third after Diego Costa helped them return to winning ways by scoring both goals in a 2-0 win at Osasuna.
Manchester United extended their lead in the Premier League to 15 points with a scrappy 1-0 home win over struggling Reading as Manchester City slumped to a 2-0 loss at Everton.
Wayne Rooney's first-half strike was enough for United to remain firmly on course for their 20th league title after goals by Everton's Leon Osman and Nikita Jelavic condemned champions City to defeat at Goodison Park.
Chelsea beat West Ham United 2-0 to climb to third, above Tottenham Hotspur who lost 1-0 at home to London rivals Fulham for whom former Spurs striker Dimitar Berbatov grabbed the winner.
Fifth-placed Arsenal won 2-0 at Swansea City to stay in the hunt for a Champions League place.
Bayern Munich will clinch the title if they win their next match and second-placed Borussia Dortmund draw after the Bavarians beat Bayer Leverkusen 2-1 to stay an emphatic 20 points clear at the top.
Mario Gomez put Bayern ahead in the first half. Simon Rolfes gave Leverkusen a deserved equaliser after the break but they were undone when Wollschied put the ball into his own net in the 87th minute.
Dortmund, champions for the past two seasons, played their part by demolishing Freiburg 5-1 with two goals apiece from Bundesliga top scorer Robert Lewandowski and playmaker Nuri Sahin.
Bayern have 69 points with eight games left, Dortmund are on 49 and Leverkusen 45.
Serie A's leading scorer Edinson Cavani ended an eight-match goal drought by scoring twice, including a penalty, to help Napoli beat Atalanta 3-2, taking his tally to 20 for the season.
Goran Pandev scored the winner in the 86th minute to give Napoli their first win in six games and keep them nine points behind leaders Juventus.
Second-half goals from Mirko Vucinic and Claudio Marchisio gave Juventus a 2-0 win at Bologna as they close in on a second successive title.
Mario Balotelli scored twice, the first a penalty, in AC Milan's 2-0 win over bottom club Palermo, taking his tally to seven in six games since his move from Manchester City. Milan are a further two points behind Napoli in third.
None of the top seven teams managed to win but Paris St Germain still extended their lead to five points despite wasting a two-goal advantage in a 2-2 draw at St Etienne.
Javier Pastore and Zlatan Ibrahimovic's early goals were cancelled out by an Alex own goal and a superb strike by Francois Clerc as David Beckham started his first Ligue 1 game for PSG.
PSG have 58 points and lead Olympique Lyon, who were thrashed 4-1 at Bastia on Saturday, by five points.
Third-placed Olympique Marseille, on 51 points, had a goalless draw against AC Ajaccio on Friday and fifth-placed Nice, on 48 points, slumped to a 1-0 defeat at bottom club Nancy on Sunday. St Etienne are fourth on 49 points.
Ajax Amsterdam beat AZ Alkmaar 3-2, thanks to a Siem de Jong double, to remain top of the league with 57 points and seven matches remaining.
PSV Eindhoven, 2-0 winners over RKC Waalwijk, and Feyenoord who beat Utrecht 2-1 are one point behind the leaders, while Vitesse Arnhem, 4-0 victors at ADO Den Haag, follow on 54.
Portuguese Premier League leaders Benfica thrashed Vitoria Guimaraes 4-0 to extend their lead to four points over second-placed Porto who were held to a disappointing 1-1 draw at aritimo.
Benfica's Paraguay striker Oscar Cardozo opened the scoring from the spot in the first half and, in the second, Guimaraes' right back Kanu was sent off, which made things easier for the visitors.
Argentine duo Ezequiel Garay and Eduardo Salvio scored one each and substitute Spanish forward Rodrigo sealed the easy win.
Benfica made the most of the slip-up from champions Porto who were unable to hang on to a 1-0 advantage grabbed by Colombian James Rodriguez. Maritimo struck back through a fine chip from South Korean forward Suk Hyun-jun.
Benfica are on 61 points from 23 matches and Porto have 57.
(Editing By Alison Wildey)
Trending On Reuters
Nine-times champion Rafael Nadal sent shockwaves around Roland Garros on Friday when he unexpectedly pulled out of the French Open because of an injury to his left wrist. Read