Karim Benzema opened the scoring before a late double from Cristiano Ronaldo sealed the win as Celta were made to pay for passing up a host of clear-cut chances.
With the scoreline still deadlocked with an hour played, Real boss Carlo Ancelotti introduced the fit-again Gareth Bale and Jese Rodriguez from the bench in the search of a goal.
The Italian was rewarded when Jese squared for Benzema to break the deadlock 23 minutes from time.
Ronaldo killed the game as a contest when he rolled home Dani Carvajal's cross before Bale provided his seventh assist of the season for Ronaldo to fire home his second in stoppage time.
And Ancelotti accepted that his side had been far from their best on their return to competitive action after a two-week lay-off.
"We didn't play well, especially in the first-half. Our play was slow, but that is quite normal that after a break the team doesn't have the same rhythm.
"In the second-half our intensity was better and we came through the game well in the end."
The visitors had enjoyed the best of the first-half and should have been in front after just five minutes when Charles galloped into a huge gap behind the Madrid defence but could only fire into the side-netting.
Real didn't get going until midway through the half as Benzema's shot from close range was deflected just wide on 23 minutes, before Luka Modric fired a long-range effort just over.
Borja Oubina then passed up another great chance for Celta when he headed over Alex Lopez's cross from point-blank range.
There were more problems for Ancelotti to contend with at the break as Xabi Alonso had to replaced by Asier Illarramendi.
Ancelotti then turned to in-form 20-year-old forward Jese on the hour mark in the quest for a goal and he nearly obliged with his first touch but Yoel Rodriguez was equal to his low effort.
Bale was next to be introduced for the largely ineffective Di Maria.
However, it was Celta who had the next big opening as Charles failed to hit the target again with just Lopez to beat from the edge of the area.
And the Galicians were finally made to rue their missed opportunities two minutes later when Jese got to the by-line and his low cross was stabbed home by Benzema.
Ronaldo came close for the first time of the evening when he dragged a shot just wide with 15 minutes remaining.
But he wasn't to be denied as he slid in to meet Carvajal's cross eight minutes from time.
And Ronaldo soon had his 29th goal of the season as he swept home Bale's driven cross from the right at the near post.