Match ends, Atletico Madrid 2, Osasuna 1.
Luis Suarez scored a dramatic late winner as Atletico Madrid fought back to beat Osasuna and put themselves on the verge of a first La Liga title for seven years.
Diego Simeone's side now travel to Real Valladolid in their final game knowing that a win will clinch the title.
Ante Budimir's header had put Osasuna on course for a shock win and seen Real Madrid briefly top the table.
But Renan Lodi levelled before Suarez steered in Yannick Carrasco's cross.
Both Atletico goals arrived in the final 10 minutes of a compelling contest - and just as it looked as though they were going to have to surrender top spot to their city rivals.
Real, who were leading and went on to win at Athletic Bilbao, were in pole position for the title with two minutes remaining.
Simeone's side, who have led the table since November and at one stage had a 10-point lead at the top, dominated throughout but initially failed to take advantage of a glut of chances, with the Argentine urging them forward.
Suarez hit the post and flashed a drive wide as the hosts peppered the Osasuna goal with 16 shots during the first half.
And Stefan Savic then had a second-half goal disallowed after a VAR review correctly found he was offside when volleying in from close range.
Budimir's header, which was also awarded after a review, came after a superb run and cross from Ruben Garcia but was one of just two efforts on target for the visitors.
However, Lodi, who was introduced as a substitute settled home nerves with a clinical left-foot effort into the top corner and the hosts more than deserved their victory.
Barcelona had also started Sunday's penultimate round of fixtures in contention for a fifth title in seven years but lost 2-1 at home to Celta Vigo.
- 15SavicBooked at 76mins
- 22HermosoSubstituted forLodi dos Santosat 66'minutes
- 14LlorenteSubstituted forHerreraat 80'minutes
- 8SaúlSubstituted forSequeiraat 66'minutes
- 10CorreaSubstituted forDembeleat 80'minutes
- 9SuárezBooked at 89minsSubstituted forKondogbiaat 90+1'minutes
- 12Lodi dos Santos
- 20Machín Pérez
- 3Álvaro Armado
- 11Barja AlfonsoSubstituted forTorróat 77'minutes
- 8BrasanacBooked at 84minsSubstituted forÁvilaat 90+1'minutes
- 7Rodríguez MenéndezSubstituted forTorresat 65'minutes
- 17BudimirBooked at 76minsSubstituted forGallego Puigsechat 77'minutes
- 19Gallego Puigsech
- Juan Martínez Munuera
- Shots on Target
Second Half ends, Atletico Madrid 2, Osasuna 1.
Attempt saved. Chimy Avila (Osasuna) left footed shot from outside the box is saved in the centre of the goal. Assisted by Enric Gallego.
Offside, Osasuna. Rubén García tries a through ball, but Lucas Torró is caught offside.
Attempt saved. João Félix (Atletico Madrid) left footed shot from outside the box is saved in the top right corner. Assisted by Héctor Herrera.
Offside, Osasuna. Jonás Ramalho tries a through ball, but Chimy Avila is caught offside.
Substitution, Osasuna. Chimy Avila replaces Darko Brasanac.
Substitution, Atletico Madrid. Geoffrey Kondogbia replaces Luis Suárez.
Luis Suárez (Atletico Madrid) is shown the yellow card for excessive celebration.
Goal! Atletico Madrid 2, Osasuna 1. Luis Suárez (Atletico Madrid) right footed shot from the centre of the box to the bottom left corner. Assisted by Yannick Carrasco.
Offside, Atletico Madrid. Moussa Dembele tries a through ball, but Luis Suárez is caught offside.
Darko Brasanac (Osasuna) is shown the yellow card.
Yannick Carrasco (Atletico Madrid) wins a free kick in the defensive half.
Foul by Lucas Torró (Osasuna).
Goal! Atletico Madrid 1, Osasuna 1. Renan Lodi (Atletico Madrid) left footed shot from the left side of the box to the high centre of the goal. Assisted by João Félix with a through ball.
João Félix (Atletico Madrid) wins a free kick in the attacking half.
Foul by Jon Moncayola (Osasuna).
Kieran Trippier (Atletico Madrid) wins a free kick in the defensive half.
Foul by Rubén García (Osasuna).
Substitution, Atletico Madrid. Moussa Dembele replaces Ángel Correa.