The visitors were not content to sit back and defend, and spurned several chances to break the deadlock before Benzema eased the tension around the Bernabeu with a clever finish in the 67th minute.
Ronaldo then bagged his 19th and 20th Primera Division goals of the season to settle any lingering nerves late on as Carlo Ancelotti's men once again closed the gap on the league's frontrunners, Barcelona and Atletico Madrid, to five points.
It was far from a dominant display by the Spanish giants, but they are now on a 13-game unbeaten run, while their beaten opponents will be left to wonder what might have been after succumbing to their third defeat in four matches in all competitions.
It was they who had the first sight at goal as Real's defence were caught out by a ball over the top, which sent Charles free, but the Brazilian striker failed to beat Diego Lopez, who pushed the ball out for a corner.
Benzema and Angel Di Maria both saw their goalbound efforts blocked as Real looked to get on top, while the former shot wide having been freed by Ronaldo.
But it was the visitors who finished the half strongly as first, Gustavo Cabral headed narrowly over from Alex Lopez corner from the right before Rafinha fired just wide via a narrow deflection off a Madrid defender.
Benzema thought he would finally have the chance to break the deadlock early in the second half after going clear, but he was fractionally offside.
Di Maria then stung the palms of Celta Vigo goalkeeper Yoel, but Charles spurned another golden opportunity for the visitors, once again latching on to a ball over the top before rattling the side netting.
It was a golden let-off for Real - and one they were keen not to waste as Benzema found the net in the 67th minute.
Celta Vigo failed to clear the danger from an innocuous cross before Jese's cutback allowed Benzema to stab home despite the presence of two defenders.
The hosts grew in confidence thereafter and Ronaldo started to see more of the ball as Celta Vigo became more stretched as they searched in vain for an equaliser.
The Portuguese forward fizzed a strike across the face of goal before nipping in at the back post to tap home from Daniel Carvajal's low cross from the right wing in the 82nd minute.
There was still time for Ronaldo to nab his 400th career goal following good work from substitute Gareth Bale in the third minute of added-on time.
Welshman Bale, who came on for Di Maria in the 64th minute, burst into the box and his cutback on the right byline saw Ronaldo nudge ahead of his marker to jab into the top corner from close range at the near post.