Madrid now sit just two points behind second-placed Atletico Madrid, while Celta remain in the relegation zone after a fifth defeat in half-a-dozen outings.
However, Celta were offering their own threat going forward through Maxi Gomez, and the Uruguayan sent a curling effort well wide of the far post after being left one on one with a defender.
Gomez thought he was about to put Celta into the lead shortly afterwards after meeting a right-wing cross, but the forward's powerful header was superbly tipped over the crossbar by Keylor Navas.
Real struggled to put anything together in the final third during the opening half-hour, but Bale almost put the home side ahead on the 30-minute mark with a volley at the back post which struck the underside of the crossbar.
Celta went down the other end where Sofiane Boufal had a volley of his own kept out by Navas, but Real controlled the latter stages of the opening 45 minutes.
Marcelo had a long-range strike brilliantly tipped wide of the far post by Ruben Blanco, while Ramos somehow headed wide from the resulting corner.
Real thought that they had broke the deadlock within 10 minutes of the restart, but Luka Modric's 25-yard volley was ruled out by VAR with Raphael Varane standing in line of the shot and distracting Blanco.
However, Real finally got their goal just after the hour mark. Marco Asensio ran across the edge of the area before playing in Karim Benzema, who provided a low cross for Isco to convert from close range for his first La Liga goal since September.
Zidane cut a relieved figure on the touchline, and the Frenchman would have been delighted with how his side continued to push for goals despite their slender advantage.
Bale and Benzema were both denied by Blanco in quick succession, but it was not long before Real sealed all three points with Bale capping an improving showing for Los Blancos.
The impressive Marcelo threaded a pass through to Bale who was advancing into the penalty area, and the forward was able to scuff a shot into the net via the inside of the post from near the penalty spot.
Asensio saw an effort from distance go fizzing past the top corner during the closing stages, but Zidane will be more than satisfied with a performance and result which will continue to rebuild the feel-good factor at the Bernabeu.
REAL MADRID (4-3-3): Navas; Odriozola, Varane, Ramos, Marcelo; Modric (Valverde 77'), Kroos, Isco (Ceballos 63'); Bale, Benzema (Mariano 82'), Asensio
CELTA VIGO (4-2-3-1): Blanco; Kevin, Araujo, Costas, Junca (Hoedt 4'); Yokuslu (Beltran 75'), Lobotka; Sisto, Mendez, Boufal (Hjulsager 68'); Gomez