Pep Guardiola’s men got off to the best possible start when the unmarked Ilkay Gundogan nodded in from a corner on 14 minutes.
And they continued to show off their attacking prowess before doubling their lead via Kevin De Bruyne midway through the second half.
Gabriel Jesus missed a penalty after Belgian maestro De Bruyne was brought down in the box.
But there was to be no way back for Tottenham as Raheem Sterling turned netted twice in the last 10 minutes to make it 4-0.
Christian Eriksen managed to bag a consolation goal but it was too little, too late after a sorry Spurs performance.
City have now extended their Premier League winning run to 16 games – stretching back to August’s victory over Bournemouth.
And they are 14 points clear of local rivals Manchester United at the top of the table, with Jose Mourinho’s men facing West Brom tomorrow.