Los Blancos had dropped 17 points off league leaders Barcelona earlier in the day, and the gap is now 16 - albeit with a game in hand - after giving away a 2-1 advantage to share the spoils in Vigo.
The unavailability of Karim Benzema through injury meant that Cristiano Ronaldo started central for the visitors, while Nacho and Achraf Hakimi were given spots at the back due to the absences of Sergio Ramos and Dani Carvajal.
Real Madrid had a couple of half-chances inside the first three minutes, but Gareth Bale just failed to meet a cross from Isco, before Ronaldo stung the palms of Celta goalkeeper Ruben Blanco moments later.
Marcelo was next to come close for the visitors as he volleyed over the crossbar in the 11th minute, but Celta were enjoying themselves on the counter as Gomez used his pace and power to good effect.
Aspas had a golden chance to send Celta ahead in the 13th minute when he met a brilliant cross from Hugo Mallo, but the Spain international saw his volley cannon back off the post.
Isco was the next Real Madrid player to try his luck in the 24th minute, but the Spaniard's effort was always missing the post, before Daniel Wass struck wide from a dangerous area down the other end of the field.
Casemiro then stung the palms of Bravo with a strike from distance, but it was Celta that made the breakthrough in the 33rd minute following a quick counter-attack.
Ronaldo was robbed high up the field, and eventually the ball was fed to Aspas; the former Liverpool attacker spotted Wass in all sorts of space down the right, and the Dane settled on the ball before lifting it over Keylor Navas.
Celta's lead was gone in a flash, however, with Bale racing onto a through pass from Toni Kroos before finding the bottom corner with a super finish in the 36th minute.
Less than two minutes later, Bale had his second of the match. This time it was Isco that found his teammate with an excellent pass, and the Welshman poked the ball past Bravo on the turn.
Isco had the first half-chance of the second period after finding space just outside the Celta box, but the midfielder's effort was always straight at the home side's goalkeeper. Ronaldo then sent one into the stands from distance as the score remained 2-1 entering the final 35 minutes of action.
Jonny came close to levelling the scores just before the hour when he unleashed an explosive strike towards the top corner, but the ball just missed Navas's goal.
Ronaldo met a cross from Isco in the 64th minute as Real Madrid threatened a third, but it was a comfortable save for Blanco, before Gomez found the gloves of Navas with a flick down the other end five minutes later.
Celta were awarded a penalty in the 71st minute when Aspas was pulled to the ground by Navas inside the Real Madrid box, but the Spaniard saw his spot kick kept out by the away side's goalkeeper, who was at least three yards off his line.
The home side refused to take no for an answer, however, and levelled in the 82nd minute when Gomez rose highest inside the Real Madrid box to head a Wass cross past the helpless Navas.
Ronaldo had the opportunity to send Real Madrid back ahead in the 84th minute, but the Portuguese hit the side netting from a dangerous angle.
Aspas felt that he should have had a second penalty in the latter stages when he went over the leg of Marcelo inside the Real Madrid box, but the referee was not interested.
Lucas Vazquez then passed up a super chance down the other end - hitting the gloves of Blanco from a dangerous position as the points were shared following a pulsating 90 minutes of action.
Celta (4-3-3): Ruben; Mallo, Roncaglia, Cabral, Jonny; Radoja (Lobotka 73'), Wass (Jozabed 91'), Hernandez; Aspas, Gomez, Sisto (Mor 73')
Real Madrid (4-3-3): Navas; Achraf, Nacho, Varane, Marcelo; Casemiro, Kroos, Modric (Lucas 76'); Isco (Kovacic 77'), Ronaldo, Bale (Asensio 85')