Real Madrid missed the chance to go to the top of La Liga but saved a point in injury-time when they drew 2-2 at home to Sevilla on Sunday night.
Real Madrid coach Zinedine Zidane made changes to the side that lost to Chelsea on Wednesday night, and Fernando put Sevilla in front in the 25th minute after beating Casemiro and Thibaut Courtois, but Marco Asensio equalized for Madrid after an assist from Toni Kroos.
Sevilla took the lead in controversial circumstances in the 77th minute from the penalty spot. Real Madrid broke after a Sevilla corner and Karim Benzema was brought down by Sevilla keeper Bono, but the VAR advised the referee of a handball by Madrid defender Eder Militao after the corner and instead awarded a penalty to Sevilla, which Ivan Rakitic slotted home.
It looked as if Sevilla were going to claim a win that would put them back in the title fight, but in the 94th minute Eden Hazard was able to deflect Kroos' off-target effort past the wrongfooted Bono to save a point that will please neither side.
The door had been opened for Madrid after a tense and tactical affair between Barcelona and Atletico Madrid ended 0-0 in the Camp Nou on Saturday afternoon.
Atletico were the better side in the first half, especially after Sergio Busquets had to leave the pitch after a collision left him with a fissure in his upper jaw, and Marcos Llorente, Luis Suarez and Yannick Carrasco all drew smart saves from Marc-Andre Ter Stegen.
Barca's best chances came from two Lionel Messi free-kicks, one of which had Jan Oblak at full stretch and the other went just wide after Ousmane Dembele headed over when he should have scored.
Atletico remain top with just three games left to play.
Villarreal were unable to follow their qualification for this season's UEFA Europa League final with a win as they lost 4-2 at home to Celta Vigo. The game had three penalties, with Villarreal substitutes Geronimo Rulli and Mario Gaspar sent off for contesting the decision which saw Brais Mendez put Celta 3-1 up just before half-time.
By then, Santi Mina had netted twice for the visitors, while Moi Gomez had scored for Villarreal, with further goals for Augusto Solari and Gerard Moreno rounding off the scoring.
Ante Budimir scored an 88th minute equalizer in an entertaining 2-2 draw between Athletic Bilbao and Osasuna.
Ion Morcillo opened the scoring for Athletic in the first minute only for Darko Brasanac to equalize midway through the first half, and although Ohain Sancet's header put Athletic back in front, Budimir salvaged a point for Osasuna with his late header.
It remains tight at the bottom, as Alaves were held to a 2-2 draw at home to Levante, with Joselu's late header salvaging a point for the team from Vitoria.
Huesca remain in the bottom three after a 2-1 defeat away to Cadiz in a game where the goals came in a four-minute spell before halftime. Marcos Mauro opened the scoring for Cadiz in the 43rd minute. Rafa Mir equalized with a spectacular goal two minutes later, but Gaston Silva then turned a cross into his own net in injury-time to put Cadiz back in front.
Recio's 88th minute penalty following a handball gave Eibar a 1-0 win away to Getafe, who remain trapped in the battle against the drop.
Eibar's second win in two games pulled them to within a point of Elche and Huesca and two behind Real Valladolid, who lost 3-0 away to Valencia.
Valencia had Voro as stand-in coach after sacking Javi Gracia on Monday, and they were under the cosh for most of the first half until Maxi Gomez slid the ball home in first-half injury-time.
He doubled his tally after great work from Carlos Soler three minutes into the second half and Correira added a third in the final minute.
On Friday night, Real Sociedad took a big step towards assuring their place in Europe next season with a 2-0 win at home to struggling Elche, who had to play nearly all the game with a man less after Raul Guti was sent off for a bad tackle.