Los Blancos remain sixth in La Liga despite recording a second successive league win, but are now just four points off division leaders Barcelona, who lost 4-3 at home to Real Betis on Sunday afternoon.
Karim Benzema had an excellent chance to send Real Madrid ahead inside the first three minutes when he found all sorts of space inside the Celta box, but the striker's low effort was wide of the post.
Celta had another opportunity in the 19th minute when Okay Yokuslu rose highest to meet a corner from the right, but the midfielder's header struck the foot of the post.
Madrid took the lead in the 23rd minute, however, when Benzema collected a pass from Luka Modric before finding the back of the net with an excellent finish.
Toni Kroos should have doubled their lead 13 minutes later when he was presented with almost an open goal from a Benzema cross, but the Germany international somehow missed the crossbar.
Aspas had Celta's best chance of the first period in the 43rd minute, but the in-form striker could not find a route past Thibaut Courtois, who made a smart save to ensure that Los Blancos would enter the break with a 1-0 lead.
Aspas had another opportunity early in the second half when he met a deep cross from Gomez, but the forward's effort was always moving wide of the post. Benzema then hit the crossbar down the other end moments later during an open period of the match.
Madrid had their second of the game in the 56th minute when Benzema's strike was saved onto the post by Sergio Alvarez before hitting Gustavo Cabral and dropping into the back of the net for an own goal.
Real's number one goalkeeper made a fine save to keep out a strike from Aspas in the 69th minute as Celta chased a second goal against Solari's team, who lost Nacho to injury in the 71st minute as their defensive problems continued.
Madrid put the game to bed in the 81st minute, however, when Sergio Ramos scored from the penalty spot with yet another Panenka. A rash challenge from David Junca on Alvaro Odriozola brought the spot kick, and the away side's captain converted.
It went from bad to worse for Celta in the 87th minute when Cabral was sent off for a rash challenge on Javi Sanchez, and Real Madrid had their fourth four minutes later when Dani Ceballos arrowed one into the top corner from outside the penalty box.
The action was not finished, however, with Celta notching their second in the fourth minute of added time when Mendez's strike deflected past Courtois.
CELTA VIGO (4-4-2): Sergio; Mallo, Roncaglia, Cabral, Junca; Mendez, Beltran (Mor 63'), Okay, Boufal (Hjulsager 63); Aspas, Gomez
REAL MADRID (4-3-3): Courtois; Odriozola, Ramos, Nacho (Asensio 71'), Reguilon (Sanchez 45'); Modric, Kroos, Casemiro (Ceballos 18'); Lucas, Benzema, Bale