Karim Benzema struck the bar in the second half at the Santiago Bernabeu but Osasuna could have won it too, with Kike Garcia missing the best chance of the game when he hit the post from five yards
Real Madrid returned to the top of La Liga on Wednesday, despite being held to a goalless draw by Osasuna, but Barcelona dropped to ninth after losing 1-0 to Rayo Vallecano, with Radamel Falcao scoring the winner.
Karim Benzema struck the bar in the second half at the Santiago Bernabeu but Osasuna could have won it too, with Kike Garcia missing the best chance of the game when he hit the post from five yards.
Madrid jump above Sevilla, Real Betis and Real Sociedad - all four of them with 21 points - on goal difference while Osasuna sit sixth after extending their strong start to the season.
"La Liga is very even, there are lots of teams up there. I don't think it's going to take 100 points to win it this season," said Carlo Ancelotti.
The 35-year-old Falcao continues to roll back the years at Rayo after scoring his fourth goal in six games for his new club and surely the sweetest, coming against Barca, whom he last scored against in 2013.
Memphis Depay missed a penalty at a bouncing Vallecas as Barca's miserable start to the season under Ronald Koeman took another turn for the worse.
After losing the Clasico at home to Real Madrid on Sunday, Barcelona now sit ninth in La Liga, six points off the top and, most concerningly for the board, the gap growing between them and the top four.
"It says we're not well," said Koeman. "The team has lost balance in the squad, lost very effective players, which shows. In recent years other clubs have strengthened every season and we haven't, which also shows."
Barca president Joan Laporta was squeezed in amongst the home crowd and cannot have been impressed by another limp display that hardly suggested this team's form is about to improve.
Asked if the result could affect his future, Koeman said: "I don't know."
- Free transfer -
Rayo stay above Barca, and only two points off fourth, maintaining their perfect record at home this term with a fifth win out of five.
Falcao joined on a free transfer in the summer and after shirts with his name on the back sold out, he has so far lived up to the hype.
Only Cristiano Ronaldo and Lionel Messi have better goals per game ratios in La Liga than Falcao, who replaced Sergio Aguero at Atletico Madrid in 2011, and now faced the Argentinian again.
The last time Aguero and Falcao were on the same pitch together they scored two goals each in a 5-3 win for Manchester City against Monaco, but this was Falcao's night.
At 35 years and 220 days, he is the oldest player to score four or more goals in his first six games for the same club in La Liga this century.
Sergio Busquets was at fault for the goal, robbed of the ball in midfield and giving Oscar Trejo the opportunity to free Falcao, who looked to have let the moment pass, only to twist past Gerard Pique and finish into the far corner.
Barcelona had been sloppy, with Philippe Coutinho and Depay particularly wasteful in possession, but they should have levelled when Depay's cross found Sergino Dest six yards out but he ballooned over.
Dest missed a similar chance in the Clasico on Sunday.
With 20 minutes to go, it looked like they finally had the breakthrough as Depay felt the back of his leg clipped by Oscar Valentin.
Depay put the ball under his arm, despite interest from Aguero, but Marko Dmitrovic dived the right way and pushed away the shot.
Barca squandered more chances late on as Aguero was allowed to stroll through but hit Dmitrovic before Luuk de Jong miscued an an attempted lob and Gavi made a mess of a simple finish in injury-time.
Madrid almost snatched a victory when Benzema's shot brushed the top of the bar in the second half, shortly after Osasuna had squandered a golden opportunity on the break.
Chimy Avila surged away down the right and squared for Kike to finish from five yards but his shot came back off the post. It still might have cannoned in off Dani Carvajal's leg but trickled wide.
Marcelo and Vinicius Junior both went close in injury-time but Osasuna held on for a deserved point.