Xavi's side went into the match having seen title rivals Real Madrid suffer their first league defeat of the season on Monday night, but their hopes of extending their lead suffered a setback when they fell behind early on.
David Garcia's sixth-minute header gave the high-flying hosts a quickfire lead after only six minutes, and their hopes of only a second win over Barcelona in their last 13 meetings were boosted when the visitors saw Robert Lewandowski sent off.
The league's top scorer was shown two yellow cards inside the opening 31 minutes, but Barcelona still managed to launch a second-half fightback without their prolific striker.
Pedri fired home the equaliser three minutes after the interval, and Raphinha secured a valuable three points with a looping header in the 85th minute.
However, there was no dream farewell for Gerard Pique in what would have been his final game for Barcelona before retirement, with the veteran defender being sent off while not even on the pitch for arguing with the referee at half time.
Barcelona's record of just four goals conceded after 13 games was the joint-best defensive start in La Liga history, but it took only six minutes for Osasuna to breach them as Garcia nodded home from a corner after losing Sergio Busquets.
More to follow.