The pressure was on Real with leaders Barcelona and Atletico Madrid having already won their first matches of the year.
However, with Ronaldo unusually quiet and record signing Gareth Bale only on the bench Real were frustrated by a Celta side who had several chances to score before Karim Benzema finally broke the deadlock midway through the second half.
Ronaldo poked in Real’s second after 82 minutes and then thumped in his second of the night from substitute Bale’s cross for his 400th career goal.
Barcelona and Atletico Madrid lead the table on 49 points after beating Elche and Malaga respectively.
Real survived an early scare when keeper Diego Lopez was forced into an excellent save from Charles after a long ball from Augusto fernandez had sent him clear of a napping defence.
The hosts dominated possession but they lacked precision and finesse and Celta’s rearguard defended doggedly.
Benzema had a shot deflected just wide by David Costas and along with speculative strikes from Luka Modric and Angel Di Maria they were all that Real could offer in the first half.
Bale came on during the second half to inject some life into Real’s attack but it was Charles who again came close for Celta, firing wide with only Lopez to beat.
It was another substitute, Jese Rodriguez, who crafted the opener with a cross that Benzema slid home from close range.
Ronaldo then came alive, pouncing to convert from Daniel Carvajal’s pass. Then, in stoppage time, he combined with Bale to give the final scoreline a flattering look.
(Editing by martyn herman)