Luis Suarez struck in the 88th minute to complete a remarkable turnaround and keep the title in Atletico Madrid's hands with one game to go.
Ante Budimir had given Osasuna the lead at the Wanda Metropolitano against the run of play in the 75th minute.
At that moment, Real Madrid, who were leading 1-0 at Athletic Bilbao, a result they held on to, sat top of the league.
However, Atletico produced a late comeback, first levelling through Renan Lodi in the 82nd minute and then winning it through Suarez's 20th in the league this season, to keep their fate in their own hands.
If Diego Simeone's side win at Real Valladolid next weekend, they will be champions. But if they fail to win and Madrid get three points and Atletico don't win, the title will be for Los Blancos for the second season running.