After declaring he was in "perfect condition" in the build-up to Saturday's match, Cristiano Ronaldo proved it on the pitch with a dazzling display and two goals, before being taken off in preparation for Tuesday's second leg with Bayern.
His sixth-minute strike gave Andres Fernandez no chance as it flew into the back of the net from long range, and he created a handful of chances for his team-mates that were wasted.
Osasuna rarely threatened Diego Lopez and they were unable to bring the goalkeeper into action when they did have a sight of goal.
Ronaldo secured the points early in the second half with his 30th league goal of the season, and Sergio Ramos added a third on the hour.
Dani Carvajal scored a late header to underline Real's dominance and keep the heat on Atletico Madrid and Barcelona in the title race, the pair facing respective trips to Valencia and Villarreal in Sunday's action.
Osasuna remain firmly in the relegation fight, just three points above the drop zone.
With one eye on Tuesday's trip to the Allianz Arena, which Real will enter 1-0 ahead, Carlo Ancelotti made six changes to his starting line-up but it was a man who featured in their semi-final first leg that opened the scoring.
A subdued Ronaldo did not look fully fit last week but he proved he was back to his best early on as he cut in from the left and sent a 25-yard strike arrowing into the top corner.
The Portugal captain was involved in every dangerous attack from Real and twice laid chances on for Ramos, though he could not capitalise.
Three minutes into the second half, Osasuna went close to a surprise leveller as Emiliano Armenteros acrobatically met a left-wing cross, however his effort was just wide.
Ronaldo showed him how it was done in the 53rd minute as he doubled his tally a sublime strike from the edge of the penalty area.
Again the 29-year-old cut in from the left with his sights set on the top corner, and he showed unerring accuracy to send the ball screaming past Andres.
Having wasted chances in the first half, Ramos finally got his name on the scoresheet as he charged into the penalty area to meet Angel di Maria's cross.
With the game won Ancelotti took the chance to give Ronaldo, Di Maria and Luka Modric a rest to ensure they are ready for their midweek test in Germany.
One of the substitutes made an immediate impact as Carvajal, who had replaced Di Maria, escaped the attentions of Osasuna's defenders and lobbed a header over Andres from Isco's chipped pass.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.