There remains speculation surrounding the future of head coach Zinedine Zidane, but Los Blancos have now won four of their six league matches this season to top the pile with 14 points.
Vinicius Junior opened the scoring before 18-year-old Rodrygo Goes capped his debut with a fine solo strike - handing the hosts three important points ahead of Saturday night's trip to Atletico Madrid.
Both teams had their moments in what was an open first 15 minutes, although neither were able to find that extra piece of quality in the final third as the score stayed goalless in the capital.
Madrid had a golden chance to take the lead in the 18th minute when the ball broke for Luka Jovic after Ruben had prevented Raul Navas from finding the back of this own net, but the Serbia international fired over the crossbar.
Toni Kroos then struck just wide of the post moments later with the home side starting to force the issue.
Osasuna hit back with a period of pressure, but the breakthrough arrived in the 36th minute when Vinicius found the back of the net with a smart finish, albeit with the help of a slight deflection.
Vinicius looked for a second moments later when he again found space in a dangerous position, but the attacker's effort moved just wide of the post with Osasuna coming under pressure.
The Brazil international then turned provider in the 43rd minute as he delivered a dangerous low cross into Jovic, but the striker could not fashion a clear shot before the visitors cleared their lines.
Osasuna's best chance of the half came late on when Marc Cardona broke into a dangerous position inside the Madrid box, but Areola was quick off his line to make the claim as the home side took a one-goal lead into the break.
Cardona had a half-chance early in the second half after meeting a deep cross from Fran Merida, but the number seven could only head wide of the post.
Jovic then missed a golden chance down the other end as the Serbia international fired over the crossbar from inside the penalty box having been found by Lucas Vazquez in a forward area.
The summer arrival did find the back of the net with a clever finish just before the hour after another smart piece of work from Vazquez, but VAR disallowed the goal for offside - handing Osasuna a reprieve.
Kroos then tested Ruben with a thunderous strike in the 67th minute before Valverde missed the post moments later as the score stayed 1-0 in the capital despite the increasing pressure.
Osasuna conceded a second in the 72nd minute, however, when Rodrygo Goes capped his debut with a brilliant goal by driving into the box and curling one into the bottom corner of the net.
As it turned out, it was a brilliant night for Zidane, with the Frenchman managing to rest a number of key players ahead of Saturday's huge trip to the Wanda Metropolitano.
REAL MADRID (4-3-3): Areola; Odriozola, Ramos, Militao, Nacho; Kroos, Casemiro, Valverde (James 82'); Lucas, Jovic, Vinicius (Rodrygo 71')
OSASUNA (4-4-2): Ruben; Lillo, Navas, Roncaglia, Estupinan; Ibanez (Torres 71'), Moncayola, Merida, Garcia; Cardona (Avila 65'), Llamas (Villar 65')