Sevilla blew the Laliga race wide open after stunning leaders Atletico Madrid 1-0 in a league game staged on Sunday night.
The only goal came in the 70th minute from Marcos Acuna after Jan Oblak had earlier saved Lucas Ocampos’ penalty. The results mean that Atleti are only three points clear of Real and four ahead of Barca who plays on Monday.
In other games in Laliga, Valencia went down 2-1 to Cadiz on Sunday in a game that was marred by a racial incident.
Visitors Valencia had their players walk off the pitch after an alleged incidence of racial abuse towards defender Mouctar Diakhaby. Diakhaby was incensed after a clash with Cadiz defender Cala and, after remonstrating with the referee, led his team down the tunnel.
They subsequently returned, although without Diakhaby, with the club saying they continued the match at the request of the defender.
Bottom side Alaves suffered another defeat, going down 3-1 at home to 10-man Celta Vigo with Real Betis being held to a 1-1 draw by Elche.
In the Bundesliga, Borussia Dortmund slipped further off the pace as they were beaten 2-1 at home by Eintracht Frankfurt.
Spoils were shared in the Berlin derby as Hertha held high-flying Union to a 1-1 draw. Robert Andrich put Union ahead in the 10th minute but Dodi Lukebakio equalized five minutes before half-time.
A late own goal from Ludwig Augustinsson earned Stuttgart a 1-0 victory over Werder Bremen.
In Serie A, leaders Inter Milan tightened their grip at the top of the table with a 1-0 win at Bologna with rivals AC Milan drawing 1-1 against 10-man Sampdoria; Cristiano Ronaldo heading in an equalizer with 10 minutes left as Juventus drew 2-2 in the Derby della Mole at Torino.
In France, Lille moved back to the top of Ligue 1 with a hard-fought 1-0 win at Paris St Germain, who had Neymar sent off late on. The Pochettino coached side now trails Lille by three points with seven matches left.