Celtic went toe-to-toe with the Premier League leaders and lead after three minutes through Dembele.
Former Manchester City winger Scott Sinclair clipped the ball to James Forrest at the back post, whose first-time cross eventually hit off Dembele and went into the net.
City equalised eight minutes later through Fernandinho after controlling a long-range effort and his skewed shot on goal trickled into the bottom right-hand corner.
On 20 minutes Celtic took the lead again after a brilliant run from Tom Rogic who slipped the ball through to Kieran Tierney whose shot deflected off Raheem Sterling and into the net.
Sterling atoned for his own goal with a lovely goal of his own from David Silva’s through ball and coolly put the ball beyond Craig Gordon.
Two minutes into the second half Dembele scored his 12th goal of the season from Tierney’s cross after Alexander Kolarov’s woeful attempt to clear the ball.
Nolito scored City’s third after some lovely football and Gordon’s best attempts to keep the ball out of the net.
Here are the player ratings from tonight’s game.
Craig Gordon 7/10
Spread himself well but could do little to stop Fernandinho for the equaliser. Came out well to collect the ball as Aguero ran through. Got down well to save Nolito’s shot but could do nothing to save his shot 10 minutes later after saving Aguero’s initial shot. Fantastic save from Gundogan’s shot on the edge of the box.
Mikael Lustig 7/10
Defended well early on and looked to switch the play out to Sinclair on the left wing. Good block from Noltio’s shot when Gordon was out of position.
Kolo Toure 7.5/10
Almost made it two nil with a volleyed effort on goal that was saved by Bravo. Defended well for the most part and used his experience and strength to close down any threat. Immense late on in the game for Celtic.
Erik Sviatchenko 7/10
Good defensive play to clear a dangerous ball through to David Silva. Knew little about it but positioned himself well to block Aguero’s header on goal.
Kieran Tierney 9/10
A goal has been coming the last few games with his runs down the left wing and got on the end of Rogic’s through ball and saw his shot deflected into the net. Cross into the box wasn’t cleared by Kolarov and Dembele scored again. Terrific defending for the most part against one of the most dangerous wingers in European football.
Scott Brown 7.5/10
Started the game well in midfield pressing the ball and driving forward when he was in possession. Terrific in possession and rolled off players to play the ball quickly around the pitch.
Nir Bitton 7/10
Brilliant nutmeg in the build up to the second goal. Didn’t get much of the ball in midfield and gave it away needlessly a few times after doing well to win the ball back.
James Forrest 7/10
Great run at the back post and a perfect first time ball which Dembele put into the net. Got down the line well at Clichy and won several corners. Terrific work rate down the line but his end product was poor. Replaced by Roberts with 10 minutes remaining.
Tom Rogic 7.5/10
Started well and linked up well in midfield with Brown and the two wingers. Wonderful through ball to Tierney to make it 2-1 off a deflection. Superb in the game turning defenders and driving at the defence. Composure on the ball to pick a pass and go past players as if they weren’t there. Didn’t have the same impact in the second half and was taken off.
Scott Sinclair 7/10
Brilliant ball to Forrest at the back post for the opening goal. Looked to cut inside from the left wing and caused problems for City winning several free kicks around the box. The outball for Celtic from defence but was quiet in the second half.
Moussa Dembele 8.5/10
Right place at the right time to give Celtic the lead. Lost the ball that led to the second goal. Pounced on Kolarov’s mistake to score his second goal of the night after a dangerous cross from Tierney with a brilliant overhead kick.
Stuart Armstrong 4/10
Came on for Rogic with 34 minutes remaining in the game. Left massive gaps in the middle of the park at times and didn’t have too much impact on the game.
Patrick Roberts N/A
Came on for Forrest with 10 minutes remaining against his parent club. Didn’t have much impact as Celtic looked to hold on late in the game.
Leigh Griffiths N/A
Came on for Bitton with seven minutes remaining to try and win the game. Didn’t get the one chance he hoped to get.