Leicester City’s fairytale season continued with a 1-0 win at Watford that stretched their lead at the top of the Premier League back to five points over chasing north London rivals Tottenham Hotspur and Arsenal, who drew 2-2 in a thriller.
Leicester’s Algeria winger Riyad Mahrez scored the winner at Vicarage Road with a fine second-half strike that kept the Foxes on track for their first top-flight title.
Spurs were held at home by Arsenal, who took the lead but lost Francis Coquelin to a second booking and went 2-1 behind before Alexis Sanchez earned a share of the spoils.
Fourth-placed Manchester City thrashed Aston Villa 4-0 but Manchester United’s Champions League qualifying hopes suffered a blow in a 1-0 defeat at mid-table West Bromwich Albion after Juan Mata was sent off midway through the first half.
Barcelona extended their unbeaten run to 36 matches in all competitions, including 30 wins, when they beat Eibar 4-0 to stay eight points clear of Atletico Madrid at the top of La Liga with 10 matches left.
Their lethal attacking trio of Messi (35 goals), Suarez (42) and Neymar (23) reached a century of goals in all competitions this season after a double from Messi and one from Suarez.
Atletico kept pace in second place with their fifth win in six league matches, beating Valencia 3-1 at the Mestalla, their second goal coming from substitute Fernando Torres, his 102nd in his 300th match for the club.
Real, 12 points off the pace in third place, prepared for Tuesday’s Champions League clash at home to AS Roma by crushing Celta Vigo 7-1 with four goals from Cristiano Ronaldo, now La Liga’s top marksman with 27, one more than Suarez.
Bayern Munich stayed on track for an unprecedented fourth consecutive Bundesliga title with a 0-0 at Borussia Dortmund, who stayed in second place five points off the pace.
The Bavarians, who lost against Mainz 05 in midweek, had the better chances but lacked the clinical finish.
Hertha Berlin slumped to a 2-0 defeat at Hamburg SV, their second loss in 11 matches, as their third-place buffer was slashed to one point.
Juventus preserved a three-point lead at the top of Serie A by beating Atalanta 2-0 with a rare Andrea Barzagli goal and a magnificent effort from Mario Lemina.
Second-placed Napoli kept the pressure on with a 3-1 home win over Chievo after conceding a second-minute goal.
Third-placed Roma extended their winning league run to seven matches with a thumping 4-1 victory over Fiorentina, while Inter Milan consolidated fifth spot with a 3-1 win over Palermo.
Leaders Juve have 64 points after 28 matches ahead of Napoli (61), Roma (56), Fiorentina (53) and Inter (51).
A second-string Paris St Germain were held 0-0 at home by Montpellier as Laurent Blanc rested players before the Champions League last 16, second-leg against Chelsea on Wednesday.
PSG remain 23 points clear of closest challengers AS Monaco who drew 2-2 at Caen.
Third-placed Olympique Lyonnais thrashed En Avant Guingamp 5-1 with Alexandre Lacazette netting twice, while teenage striker Ousmane Dembele got a hat-trick as Stade Rennes ended Nantes’ 13-game unbeaten league run with a 4-1 home win.
PSG have 74 points after 29 matches with Monaco on 51.
Benfica won 1-0 at Sporting Lisbon after an astonishing miss by home striker Bryan Ruiz as the visitors knocked their neighbours off the top of the Portuguese league.
The Costa Rican scooped the ball over an open goal from five metres as Sporting pressed forward in a bid to wipe out Kostas Mitroglou’s first-half goal for champions Benfica.
It was the first time Benfica had beaten their neighbours since former coach Jorge Jesus joined Sporting in a move that shocked Portuguese football in May.
The win left Benfica with 61 points from 25 matches, two more than second-placed Sporting.