Barcelona could only draw 0-0 at Elche but Atletico were held 1-1 at home by Malaga, and so Barca still trail Diego Simeone’s side by three points with a game to go.
The Catalans will be champions with a win next Sunday thanks to a better head-to-head record.
Real Madrid’s challenge is over, though, as they were beaten 2-0 away to Celta Vigo.
Atletico wasted the chance to seal their first title in 18 years at home as a win allied with Barca dropping points would have handed them the championship.
Atletico fell behind 25 minutes from time as Samuel headed into an empty net after lobbing Thibaut Courtois, but Toby Alderweireld’s header nine minutes later did at least salvage their unbeaten home record in the league this season.
“I am not disappointed because the players gave everything to win the match,” said Simeone.
“If you had told us at the start of the season that we would play the last game in the Camp Nou with a three point advantage over Barca no one would have believed it.
“Now, like in every final, there is a 50-50 chance for both teams.”
Without the injured Diego Costa up front, Simeone paired Raul Garcia and David Villa in the Atletico attack and the two nearly combined for the opener on 12 minutes when Villa raced onto Garcia’s flick-on but saw his side-footed effort clip the crossbar on its way over.
Malaga’s had to wait until the hour mark for their first clear chance when Roque Santa Cruz latched onto Samuel’s pass but Courtois raced off his line to make a vital save low to his left.
The visitors did go in front five minutes later as this time Courtois was lobbed by Samuel as he left his area and the midfielder headed into an empty net.
– Caballero denies Atletico the title –
Malaga could even have been further in front when Ignacio Camacho headed over from point-blank range and that miss was to prove crucial as Atletico rallied in the final quarter.
Willy Caballero made a fine one hand save to deny Villa once more, but from the resulting corner Alderweireld headed into the far corner.
Malaga had to see out the final few minutes with 10 men as Marcos Angeleri was shown a second yellow card for a foul on Diego Ribas and Jose Sosa sent the resulting free-kick inches wide.
Caballero had to make one more flying save from Adrian Lopez deep into stoppage time to ensure that the title race will go down to the final weekend.
Barcelona, meanwhile, were held by a side battling relegation for the second time in as many games as they couldn’t find a way past Manu Herrera in the Elche goal.
However, defender Javier Mascherano said Barca are delighted just to still be in the race with one game to go.
“It is going to be a great week in the build-up to the game. For some of us it could be our last game with Barca so it would be a very nice way to say goodbye,” said the Argentine.
“Obviously only one result is good enough for us and two for them, but if you had asked us a week ago we would definitely have settled for this.
“We tried in every way today but we weren’t precise. We can look ourselves in the eye and have nothing to beat ourselves up about with this performance.”
Andres Iniesta was captaining the side for the day on his 30th birthday and came within inches of opening the scoring when he thundered a volley off the bar early on.
Lionel Messi had Barca’s best chance three minutes into the second period as he cut inside onto his favoured left foot, but again Herrera stood up well to block the ball to safety.
Real’s stumbling end to the campaign also continued as without the injured Cristiano Ronaldo and Gareth Bale they succumbed to two goals from Charles to leave them five points off the top in third.
“It is true that in the last three games we have not done things well,” said Real boss Carlo Ancelotti who added his team may have been distracted by the Champions League final.
“Since the semi-final our intensity has dropped and we have paid heavily for it. Now we have to look at what we have done wrong and recover our energy and players for the final.”