Ricardo Carvalho's winner broke Osasuna's resistance and handed José Mourinho his first win in charge of Real Madrid in his first game at the Bernabéu.
Real initially struggled to break down their stubborn opponents, but Cristiano Ronaldo reacted smartly in the 48th minute after his low shot was saved by Ricardo Lopez and poked the ball into Carvalho's path for the former Chelsea defender to fire into the gaping net.
Some of Real's demanding fans had whistled Mourinho and the players at the break after a goalless and frustrating first period but there was much more urgency about the team in the second half and they created several more scoring chances.
The victory gives Real four points from their opening two matches after they were held to a 0-0 draw at Mallorca in their opening game.
Mourinho brought the 32-year-old Carvalho to the Bernabeu after replacing Manuel Pellegrini as Real's coach at the end of last season. He also took Carvalho with him to Chelsea from Porto following their 2004 Champions League triumph.