Ilkay Gundogan scored twice after Rodri had put City ahead from the penalty spot midway through the opening period.
Raheem Sterling might have had another late on as City strengthened their grip at the summit, where they also have a game in hand over second-placed Leicester.
It was a chastening night for Tottenham and their manager Jose Mourinho.
When they won the first meeting between these sides in November, Tottenham were top of the table.
Since then, City have taken 41 points from a possible 45 to take a decisive advantage in the title race.
In contrast, Spurs have now collected 16 points in 14 games and lost four games out of five in all competitions and remain in eighth.
On this evidence, few will give Mourinho any chance of overcoming Pep Guardiola at Wembley when these sides meet in the Carabao Cup final on 25 April.
After last week’s win at Liverpool, when Gundogan became the third City player to miss from the spot, Guardiola suggested goalkeeper Ederson might be next in line.
It was not entirely clear whether the City boss was joking.
Certainly Ederson did not think so judging by the way the Brazilian strode purposefully forward after the foul on Gundogan by Pierre-Emile Hojberg had been confirmed by the video assistant referee.
It took a firm hand from Bernardo Silva to stop him and there was an element of disgruntlement at the way Ederson went back to his position as Rodri found the net.
It was easy to have sympathy for the City keeper.
Aside from the Harry Kane free-kick that hit the post in the opening minutes, Ederson had virtually nothing to do until Erik Lamela fired straight at him just before the hour.
His disappointment did not last, though.
When he dropped a superb long ball from the edge of his own area over the visitors’ defence for Gundogan, the German ensured Ederson could claim the assist to a quite brilliant goal as he got the better of Davinson Sanchez before finishing superbly.
From 70 yards away, Ederson celebrated with a wide smile and a thumbs up.
It took Gundogan’s tally to 11 goals in 12 games, having already benefited from Raheem Sterling’s excellent close control and pass to double the hosts’ advantage five minutes after the break.
There was concern at how Gundogan’s night ended as he was substituted with what appeared to be a groin injury.
City will hope the problem will not keep the Premier League’s player of the month out for too long.
It was another frustrating night for Gareth Bale.
Restored to the Spurs squad after a rather odd week, in which Mourinho said the Welshman had asked to be left out of the FA Cup defeat by Everton in midweek because he did not feel right, then rejected the insinuation of a social media post that he was training well, Bale was not introduced until the 71st minute.
By then, Tottenham were three down and Mourinho had already used two substitutes, which further underlines the gap between manager and player.
Bale was responsible for the only moment of inspiration for the visitors in open play, when he took possession from Rodri, then beat three men before shooting too close to Ederson from the edge of the box, allowing the City keeper to save.
Without a swift change of fortune, a season that promised so much for both parties is in danger of turning into damp squib, with the plea from those close to Bale that he just needs a run of games to find his form unlikely to be heeded.