Real Madrid beat old foes Barcelona to close in on their first La Liga title in four years but the championship race in England was thrown open by Manchester United drawing 4-4 at home with Everton.
The slip-up allowed next opponents Manchester City to cut the gap at the top to three points with a 2-0 win at Wolverhampton Wanderers, who were relegated.
Borussia Dortmund sealed their second straight Bundesliga title while controversy reigned in Italy and Switzerland.
Real Madrid have one hand on the La Liga trophy after Cristiano Ronaldo scored a stunning winner in a 2-1 victory at Barcelona that stretched their lead at the top to seven points with four games left.
The Portuguese forward’s 73rd-minute strike from Mesut Ozil’s superb assist secured the win his coach and compatriot Jose Mourinho had sought in vain in eight previous trips to the Nou Camp with Chelsea, Inter Milan and Real.
A rare Sami Khedira goal had given his side an early lead on a damp night in the Catalan capital before Alexis Sanchez came off the bench to snatch a 70th-minute equaliser that briefly lifted the home side before Ronaldo’s decisive strike.
Ronaldo extended his La Liga record tally for the season to 42, one more than Barca forward and World Player of the Year Lionel Messi.
The race for the Premier League title took another twist when leaders Manchester United blew a two-goal lead to draw 4-4 with Everton at Old Trafford, allowing Manchester City to close the gap to three points after they won 2-0 at Wolverhampton Wanderers.
United, with two goals from Wayne Rooney, led Everton 3-1 and 4-2 but the visitors scored two late goals through Nikica Jelavic and Steven Pienaar to save a point.
City’s win at Molineux relegated Wolves, who go down after three years in the top flight.
Newcastle United moved into the top four after beating Stoke City 3-0 for their sixth straight win while Tottenham Hotspur slipped back to fifth after losing 1-0 at Queens Park Rangers. Arsenal and Chelsea drew 0-0 in an unusually tepid London derby.
Borussia Dortmund wrapped up their second consecutive title with two games to spare after beating fourth-placed Borussia Moenchengladbach 2-0 to go eight points clear.
Ivan Perisic and Shinji Kagawa were both on target to extend Dortmund’s unbeaten streak to 26 league games and trigger wild celebrations among 80,000 inside the Westfalen stadium as they secured their eighth German league title.
Second-placed Bayern Munich had done their part in keeping the title race alive for a few more hours, scoring a stoppage time winner through Franck Ribery to beat Werder Bremen 2-1. Bayern are guaranteed a second place finish.
Schalke 04 held on to third place, worth automatic Champions League qualification, despite a 1-1 draw at Augsburg. Kaiserslautern beat fellow strugglers Hertha Berlin 2-1 away but still went down.
Juventus went three points clear at the top of Serie A with five games left by cantering to a 4-0 home win over AS Roma, helped by two goals from Chilean midfielder Arturo Vidal in the first eight minutes.
Andrea Pirlo added a third before the half hour, scoring from a rebound after he had a penalty saved, and Claudio Marchisio made it 4-0 early in the second half.
Second-placed AC Milan dropped two home points, needing a 90th minute goal from leading scorer Zlatan Ibrahimovic to draw 1-1 with Bologna.
Relegation-threatened Genoa’s 4-1 defeat by Siena was marred by hardcore fans rioting and ordering the players to take off their shirts.
Unheralded leaders Montpellier held on to their two-point advantage as they defeated Valenciennes 1-0 while second-placed Paris St Germain demolished strugglers Sochaux 6-1.
Brazilian Nene, who was criticised by fans after he missed clearcut chances in the draw at Auxerre last weekend, shone with two goals at the Parc des Princes to keep PSG in the title hunt.
Montpellier top the table on 69 points, two ahead of PSG, with five games to go.
Eden Hazard scored one goal and set up another as defending champions Lille won 2-0 at lowly Dijon to stay in third and the Champions League playoff round qualifying spot on 62 points.
A late Bafetimbi Gomis goal helped fourth-placed Olympique Lyon recover from two goals down to beat Lorient 3-2 and keep their thin Champions League hopes alive.
Ajax Amsterdam registered an 11th straight win, beating Groningen 2-0 to go six points clear with three matches remaining.
AZ Alkmaar and Feyenoord both won 2-1 against VVV Venlo and ADO Den Haag to go stay joint second on 61 points ahead of next week’s meeting in Rotterdam.
Twente Enschede and PSV Eindhoven also enjoyed close wins to follow on 60 points.
Hulk grabbed a brace and an assist in a 3-0 home victory over Beira Mar as Porto stayed in the driving seat in the Portuguese Premier League on 66 points, four above second-placed Benfica with three matches to go.
Benfica outplayed Maritimo 4-1 at the Luz stadium thanks to a man-of-the match performance from Spaniard midfielder Nolito, who scored two and set up the other two to keep the title chase alive.
FC Basel won the title but refused to recognise the achievement.
The episode was the latest twist in the long-running saga centered on Sion, which nearly resulted in Switzerland receiving an international ban.
Basel won 3-0 at Sion on Sunday to take an unassailable 16-point lead over second-placed FC Luzern, who have five matches to play, at the top of the Swiss Super League.
However, Basel had stated before the match that as Luzern could still win a further two points from a protest they have taken to a sporting tribunal over a Sion match, they would not recognise themselves as champions at this point.
Panaitolikos and Ergotelis were relegated from the Greek Super League after both suffered heavy defeats in the final round of matches.
Follow us on Twitter: