The World Player of the Year opened the scoring early on with a dipping effort from the edge of the area and repeated the trick just after half-time with another rasping drive that found the top corner.
Sergio Ramos added a third shortly after and Dani Carvajal rounded off the scoring seven minutes from time with a looping header to move Real back to within three points of La Liga leaders Atletico Madrid with four games remaining.
Real's focus now turns to trying to reach a first Champions League final in 12 years when they travel to face Bayern Munich in the second leg of their semi-final holding a 1-0 lead from the first leg.
Ronaldo was starting his first league game for nearly a month due to knee and hamstring injuries as coach Carlo Ancelotti made six changes to the side that started 1-0 win over Bayern.
Gareth Bale was left out of the squad as he continues to recover from flu, whilst Xabi Alonso, Pepe and Karim Benzema were all rested.
However, Ancelotti insisted all three of Ronaldo, Bale and Benzema would start .
"If there are all fit, they will play. We need to score over there and the quicker we do so the better.
"Bale had the flu before the game and was very weak for two days, so we thought it best to leave him out.
"He trained this morning, he is feeling better and, like Karim, he should be ready for ."
Ronaldo took just six minutes to make his mark when he collected the ball wide on the left and cut inside to fire a wonderful dipping effort past the helpless Andres Fernandez in the away goal.
Ramos and Ronaldo then saw efforts fly just off target as Madrid completely dominated before Ramos ought to have done better when he volleyed Ronaldo's clever free-kick over when unmarked inside the area.
Fernandez did well to make low saves from Marcelo and Luka Modric just before half-time to keep the visitors in the game.
And indeed Osasuna even had a chance to equalise early in the second-half when Emiliano Armenteros' acrobatic volley went just wide.
However, Ronaldo put the game to bed in fine style six minutes into the second half as he found the top corner from a similar angle from where he opened the scoring to register his 47th goal of the season.
Ramos finally got his name on the scoresheet just before the hour mark as he broke forward from central defence to meet Angel di Maria's in-swinging cross with a solid header to bury the ball in the bottom corner.
Ronaldo, Modric and Di Maria were then withdrawn by Ancelotti to keep them fresh for the return against Bayern.
And it was one of the substitutes, Carvajal, who scored the fourth as he timed his run from deep to meet Isco's cross perfectly before adding a simple headed finish.