Barcelona moved to within one point of Real Madrid at the top of LaLiga with a 1-0 win over Espanyol, whose relegation was confirmed after defeat in a tempestuous derby where both sides finished with 10 men at the Nou Camp.
Ansu Fati was introduced for the start of the second half but lasted just five minutes as he was shown a red card, upgraded from yellow after the video assistant referee intervened, for a studs up challenge on Fernando Calero.
But Espanyol's one man advantage lasted just another three minutes as Pol Lozano was given his marching orders – again after initially being booked – for a rash challenge on Gerard Pique before Luis Suarez settled matters.
After Antoine Griezmann's clever back-heel into the path of Lionel Messi led to the Argentinian's shot being blocked, Suarez was on hand to fire home the loose ball in the 56th minute.
Messi's volley produced a sublime save from Espanyol goalkeeper Diego Lopez but Barca rarely looked like conceding and closed out the match with minimal fuss to keep realistic hopes alive of retaining their top-flight crown.
Espanyol, meanwhile, will bow out of the Spanish top-flight for the first time since 1994. Remarkably, on the four previous occasions they have been relegated, they have immediately come straight back up.
Elsewhere, Villarreal consolidated fifth spot in the table after a Santi Cazorla penalty double helped them to a 3-1 victory at sixth-placed Getafe.
Cazorla slotted home from the spot in the 66th and 86th minutes, on both occasions after Moi Gomez had been adjudged to have been fouled in the box, with technology interfering on the second occasion.
Hugo Duro had equalised in the 80th minute but after Cazorla netted for a second time, Ruben Pena struck in added-on time to make sure of the win for the visitors, who are three points behind fourth-placed Sevilla and the last Champions League qualifying berth.
Tensions boiled over in the final moments as Villarreal midfielder Vicente Iborra and Getafe defender Allan Nyom were sent off.
Guido Rodriguez, Alfonso Pedraza and William Carvalho struck as Real Betis moved up to 13th with a comfortable 3-0 victory over Osasuna.
In Serie A, Atalanta moved up to third with a 2-0 victory over Sampdoria in a game where both goals came in the final quarter of an hour.
Rafael Toloi opened the scoring before substitute Luis Muriel struck with five minutes remaining as Atalanta leapfrogged Inter Milan, who have a game in hand.
Roma and Napoli remain in fifth and sixth positions after identical 2-1 victories over Parma and Genoa respectively.
Juraj Kucka gave Parma the lead at the Stadio Olimpico but goals from on-loan Arsenal midfielder Henrikh Mkhitaryan and Jordan Veretout either side of the break gave Roma all three points.
Hirving Lozano's 66th-minute effort settled matters in Napoli's favour after Dries Mertens' goal on the stroke of half-time was quickly snuffed out by Edoardo Goldaniga just after the restart.
Ernesto Torregrossa gave struggling Brescia the lead at Torino, who hit back to win 3-1 and move clear of the drop zone thanks to an own goal from Ales Mateju and strikes from Andrea Belotti and Simone Zaza.
Domenico Berardi and Lukas Haraslin were on target as Sassuolo prevailed 2-1 at Bologna, for whom Musa Barrow's effort in time added-on proved a consolation, while Fioretina and Cagliari shared the spoils in a goalless draw.