Emiliano Armenteros hit the winner in the 55th minute from Vadim Demidov's ball into the box.
That moves them out of the relegation zone and on to 21 points, with Celta on 20.
Armenteros was on the pitch for the entire match. The midfielder scored in the 55th minute, took five shots and completed 31 passes. Armenteros's favourite passing target was Nano, with whom he linked up 10 times.
Osasuna have a record of five wins, 11 losses and six draws this season, which puts them in 16th place, only one point above the relegation zone. Celta de Vigo are in 17th place with a record of five wins, 12 losses and five draws.
Rojillos got off 13 shots, including four on target.
Nano's 16 passes to Armenteros were the most between any Osasuna team-mates during the match.
Celta de Vigo had 48.2% of the possession during the match.
Celta de Vigo had 12 shots, including two on target.
The most effective of Celta de Vigo's three substitutions was Park Chu-Young, who, after replacing Enrique De Lucas in the 61st minute, took two shots.
The combination of Javi Varas to Mario Bermejo was the most common during the match, as the two players connected 14 times.