Benzema was looking for his 45th goal of the season but was twice denied by Osasuna goalkeeper Sergio Herrera, who both times dived to his right and both times made the save with Madrid leading 2-1 at El Sadar.
But Osasuna were unable to find an equaliser in the second half and Madrid added a third in injury-time, Vinicius Junior teeing up Lucas Vazquez for an easy finish.
David Alaba's opener had earlier been cancelled out by Osasuna's Ante Budimir, before Marco Asensio restored Madrid's advantage on the stroke of half-time.
Madrid move 17 points clear at the top of LaLiga, ahead of Atletico Madrid, who missed the chance to pull away in the race for the top four after being held to a goalless draw by Granada.
The stalemate means Atletico move up to second in the table but could be overtaken by both Barcelona and Sevilla on Thursday. Barca play at Real Sociedad after Sevilla travel to Levante.
Real Betis, who were beaten by Elche on Tuesday, are four points behind Atletico in fifth.
Real Madrid coach Carlo Ancelotti started Toni Kroos and Vinicius on the bench while Luka Modric was left out of the squad completely, with the first leg of Madrid's Champions League semifinal against Manchester City less than a week away.
Alaba put Real Madrid in front in the 13th minute, bundling in the rebound after Benzema had tapped the ball across, but the advantage was brief as Budimir knocked in Chimy Avila's pass to the back post a minute later.
Madrid restored their lead at the end of the half as Asensio played inside from the right-wing and continued his run into the penalty box. Eduardo Camavinga chipped to the left side of the box and while Dani Ceballos' effort was saved, Asensio's run was rewarded with a simple finish.
Benzema's pair of penalties came in the 52nd and 59th minutes, both won by Rodrygo, whose sharp turn tempted Avila into a handball on the ground before Nacho Vidal stumbled into the back of the Brazilian.
At the first attempt, Benzema struck left but Herrera dived to make the save. The second time, Herrera pointed to Benzema's right but Benzema opted for the same side, Herrera guessing correctly again to palm away to safety.
Vinicius came off the bench and should have added a third in injury-time but side-footed wide, before tearing away again and this time laying across for Vazquez to find the corner.