Antoine Griezmann scored twice as Barcelona's La Liga title challenge regained pace with victory against Villarreal, while leaders Atletico Madrid lost to Athletic Bilbao.
The club sit third in the table following the victory, with Atletico Madrid just two points above them at the top of the league.
Ronald Koeman's squad had not suffered a LaLiga defeat since December before their losing encounter with reigning champions Real Madrid on April 10, but the club returned to winning form when defeating Getafe on Thursday and retained that momentum at Estadio de la Ceramica.
Their task was made easier by the dismissal of Manu Trigueros in the 65th minute, with the Spaniard's lunging tackle on Lionel Messi earning him a straight red card.
Villarreal's Samuel Chukwueze pounced on an opportunity to hand his side the lead in the 26th minute, with Pau Torres spotting a gap in Barca's defence and finding the Nigerian, who made his way around Marc-Andre ter Stegen to open the scoring.
The lead proved to be short-lived, however, as Griezmann picked up a pass from Oscar Mingueza and responded almost immediately when firing past Sergio Asenjo to equalise two minutes later.
The Frenchman then struck again to hand the visitors the lead after 35 minutes, this time intercepting a weak back pass from Villarreal's Juan Foyth and slotting the ball past a helpless Asenjo.
After the break the hosts were a man down when midfielder Trigueros slid in with a reckless tackle to floor Barca captain Messi and was shown a red card, with team-mate Raul Albiol the recipient of a yellow card after his protesting of the referee's decision.
Villarreal were still able to create a chance in the 78th minute with their depleted team when Gerard Moreno looked poised to produce an equaliser, but his shot was wide of the mark and the ball drifted past the right post.
Barcelona then missed an opportunity to cap their victory with a similar near-miss after 83 minutes, with Frenkie de Jong attempting to chip the ball over Asenjo but seeing his effort bounce and land off-target.
LaLiga leaders Atletico Madrid's title bid was derailed again as they were beaten 2-1 at Athletic Bilbao, offering Barcelona the chance to go top of the table next week.
Alex Berenguer put the hosts ahead in the ninth minute and they missed a slew of chances to increase their lead before a Stefan Savic header pulled Atletico level in the 77th minute.
Diego Simeone's pacesetters went for the winner but were caught out down the other end when Athletic defender Inigo Martinez headed home from a corner in the 86th minute.
Atletico still lead the table on 73 points but third-placed Barca, on 71 points, can go clear at the top if they beat Granada on Thursday.
Serie A: Darmian fires Inter closer to title
Matteo Darmian was Inter Milan's unlikely saviour once again as the defender came off the bench to score in a 1-0 win over Hellas Verona that moved Antonio Conte's side a step closer to the Serie A title.
The runaway league leaders were heading for a third consecutive draw until the wing-back fired home in the 76th minute, his second winning goal of the month after striking against Cagliari on April 11.
Inter moved on to 79 points, 13 clear of second-placed AC Milan with five games remaining, as they close in on their first league title since 2010.
Meanwhile, a superb strike from substitute Alvaro Morata earned Juventus a 1-1 Serie A draw at Fiorentina in a result that could prove costly for the Turin club's Champions League qualification hopes.
Fiorentina striker Dusan Vlahovic calmly dinked a penalty past Wojciech Szczesny to give the hosts a deserved lead.
Juve coach Andrea Pirlo brought on Morata at half-time and was immediately rewarded, as the Spaniard curled a shot into the top corner from a tight angle 31 seconds into the second half.
The result moved the champions level with third-placed AC Milan in the standings on 66 points, but the Rossoneri can pull clear when they face Lazio on Monday.
Atalanta moved up to second place in Serie A as they thrashed Bologna 5-0, with the visitors reduced to 10 men for much of the second half after Jerdy Schouten was shown a straight red card for dangerous play.
Meanwhile, Cagliari moved out of the relegation zone with a 3-2 win over Europa League semi-finalists AS Roma at the Sardegna Arena, stretching their winning run to three games. Udinese also beat Benevento 4-2 in the early game.
Bundesliga: Leipzig win to put Bayern celebrations on ice
RB Leipzig dashed Bayern Munich's hopes of wrapping up Bundesliga title with three games to spare when goals from Amadou Haidara and Emil Forsberg eased them to a 2-0 win over 10-man Stuttgart.
Second-placed Leipzig snapped a two-match winless run in the league to keep alive the title race as they cut the gap with leaders Bayern, beaten 2-1 on Saturday by Mainz 05, to seven points.
Haidara's darting header a minute after the restart put Leipzig in front and Forsberg's well-taken 67th-minute penalty put an end to any hopes of a comeback by the visitors, who have now lost five of their last six matches.
Stuttgart were reduced to 10 men when Naouirou Ahamada was dismissed in the 14th minute with a straight red card for a foul on Haidara. It was the quickest sending off Stuttgart had ever suffered in the Bundesliga.
Stuttgart 'keeper Gregor Kobel made several superb saves, including punching a thundering Angelino shot away and then recovering quickly to palm Dani Olmo's rebound wide, with Leipzig missing more chances to add to the scoreline.
Elsewhere, Borussia Monchengladbach thrashed relegation-threatened Arminia Bielefeld 5-0 to keep their European hopes alive. Gladbach are seventh in the league, four points off Bayer Leverkusen and a Europa Conference League spot.
Ligue 1 - Lille back into first, Dijon relegated
Lille jumped back above Paris Saint-Germain to the top of the Ligue 1 table by coming from two goals down to beat fourth-placed Lyon 3-2.
Lyon led through Islam Slimani and a Jose Fonte own goal but Burak Yilmaz levelled on the stroke of half-time, Jonathan David grabbed a 60th-minute equaliser and Yilmaz scored the winner five minutes from time.
Wissam Ben Yedder scored a late goal as third-placed Monaco defeated Angers 1-0 while Lens climbed to fifth with a 2-1 victory over struggling Nimes despite being down to 10 men for more than an hour following Issiaga Sylla's red card.
Nantes gave themselves a lifeline at the bottom with a 2-1 victory over Strasbourg but Dijon's relegation was confirmed after they were thumped 5-1 by Rennes, who scored four times in the last 20 minutes.
Lorient pulled away from danger with a 4-1 victory over Bordeaux, Terem Moffi scoring a hat-trick, while Nice were 3-1 winners against Montpellier.