Real Madrid need just four points to secure a 35th La Liga title after an eventful victory at Osasuna, which was achieved despite Karim Benzema missing two penalties inside 10 second-half minutes.
David Alaba gave Madrid the lead before Ante Budimir hit back for Osasuna.
Marco Asensio put the visitors back in front on the stroke of half-time.
Benzema then saw two spot-kicks saved by Sergio Herrera before Lucas Vazquez made sure in stoppage time.
Osasuna played with great intensity throughout but found themselves behind after 12 minutes when Benzema fed Alaba, whose first effort was blocked by Herrera but he was alert enough to dispatch the rebound.
Two minutes later the hosts were level when Chimy Avila’s drilled cross was turned home at the back post by Budimir.
With half-time looming, Asensio combined with Eduardo Camavinga before steaming into the box and poking home the rebound after Herrera parried Dani Ceballos’ shot.
Madrid squandered two chances to make sure of the win inside 10 crazy minutes. First, Chimy handled in the area but Benzema was outwitted by Herrera, who saved to his right.
Soon after, a collision between Nacho Vidal and Rodrygo brought about a second penalty, but again Herrera won the psychological battle to deny Benzema a 40th goal in 40 games this season.
After firing wide himself in the final minutes, substitute Vinicius Junior laid on for Vazquez to fire in Madrid’s third.
- Match Stats
- Live Text
- 2Vidal Miralles
- 16Valdés DíazSubstituted forBarja Alfonsoat 68′minutes
- 9ÁvilaSubstituted forMartínez Gonzálvezat 85′minutes
- 28MartínezSubstituted forSanjurjoat 68′minutes
- 8BrasanacBooked at 44minsSubstituted forTorresat 80′minutes
- 14GarcíaSubstituted forSánchezat 45′minutes
- 11Barja Alfonso
- 20Martínez Gonzálvez
- 3MilitãoBooked at 60mins
- 4AlabaSubstituted forCarvajalat 45′minutes
- 6NachoBooked at 62mins
- 25CamavingaBooked at 5minsSubstituted forIscoat 74′minutes
- 19CeballosSubstituted forKroosat 71′minutes
- 21RodrygoSubstituted forVinícius Júniorat 90′minutes
- 20Vinícius Júnior
- 41Marín Zamora
- Ricardo de Burgos Bengoetxea
- Shots on Target
Match ends, Osasuna 1, Real Madrid 3.
Second Half ends, Osasuna 1, Real Madrid 3.
Goal! Osasuna 1, Real Madrid 3. Lucas Vázquez (Real Madrid) left footed shot from the centre of the box to the bottom left corner. Assisted by Vinícius Júnior following a fast break.
Foul by Toni Kroos (Real Madrid).
Barbero (Osasuna) wins a free kick on the right wing.
Attempt missed. Vinícius Júnior (Real Madrid) right footed shot from a difficult angle on the left is close, but misses to the right. Assisted by Isco with a through ball.
Eder Militão (Real Madrid) wins a free kick in the defensive half.
Foul by Barbero (Osasuna).
Attempt blocked. Jon Moncayola (Osasuna) left footed shot from outside the box is blocked. Assisted by Manu Sánchez.
Substitution, Real Madrid. Vinícius Júnior replaces Rodrygo.
Corner, Osasuna. Conceded by Daniel Carvajal.
Attempt blocked. Isco (Real Madrid) right footed shot from outside the box is blocked. Assisted by Marco Asensio.
Corner, Real Madrid. Conceded by Sergio Herrera.
Attempt saved. Marco Asensio (Real Madrid) left footed shot from outside the box is saved in the top left corner. Assisted by Karim Benzema.
Substitution, Osasuna. Barbero replaces Chimy Avila.
Attempt missed. Karim Benzema (Real Madrid) left footed shot from a difficult angle on the left is too high. Assisted by Daniel Carvajal.
Offside, Real Madrid. Marco Asensio tries a through ball, but Karim Benzema is caught offside.
Substitution, Osasuna. Roberto Torres replaces Darko Brasanac.
Attempt missed. Ante Budimir (Osasuna) header from the centre of the box misses to the left. Assisted by Chimy Avila with a cross following a set piece situation.
Foul by Isco (Real Madrid).