Manchester City's winning streak under Pep Guardiola came to an end in dramatic fashion as Celtic got their first Champions League point of the season from a thrilling 3-3 draw.
Guardiola's City went behind for the first time in the Spaniard's tenure when Moussa Dembele put Celtic ahead after just three minutes, despite appearing to have been in an offside position.
City hit back just nine minutes later through Fernandinho only for Raheem Sterling to steer Kieran Tierney's shot into his own net, but the England winger made amends with a superb turn and finish at the other end to level the match before half-time.
Dembele put Celtic ahead for a third time shortly after the restart to keep a roaring home crowd dreaming of a memorable victory, but Nolito equalised swiftly when Craig Gordon parried Sergio Aguero's shot into his path.
The result marks an impressive response from Celtic - hammered 7-0 by Barcelona in their Group C opener - while City will hope the blip in their immaculate record under Guardiola is nothing more than just that.
Brendan Rodgers said before the game that Celtic needed to start brightly and they did just that when a free-kick found James Forrest in space in the box and he crossed for Nir Bitton to fire in a header that beat Claudio Bravo via a touch from Dembele's chest.
Bravo saved well from Kolo Toure soon afterwards but Celtic's impressive start was undone when Aleksandar Kolarov's shot found its way to Fernandinho, who controlled the ball before sliding a low shot past Gordon into the corner of the net.
But Celtic maintained their high tempo attacking football and restored their lead when Tomas Rogic broke down the middle and fed Tierney, whose angled shot hit Sterling's outstretched leg and flew in at the near post.
As an enthralling first half continued apace, City looked threatening with every attack and Celtic were sliced open when David Silva's threaded pass found Sterling, who beat Tierney with instinctive skill before side-footing the ball past Gordon to equalise.
Within 72 seconds of the second half, the ball was in City's net again when Kolarov made a terrible mess of Tierney's cross and Dembele, with his back to goal, scored by hooking the ball over his shoulder and past Bravo.
Just as in the first half, City were quick to draw level again and it was another Silva pass that opened Celtic up before Aguero's shot was saved and Nolito tucked home the rebound.
After an hour of end-to-end football played at a frenetic pace, Celtic put men behind the ball in the final half hour to ensure they did not let a vital point slip, and Gordon made a good save to prevent Kolarov's cross from finding Fernandinho as it flashed across the face of goal.
Fernandinho almost gave one of the Champions League's most entertaining encounters a final twist when he hit a dipping drive just over from 25 yards, and Gordon rescued Celtic in injury time with a fine reaction save from Ilkay Gundogan to ensure a share of the spoils.