As in their 3-2 derby defeat to Manchester United last weekend and the confirmation of their Champions League exit against Liverpool on Tuesday, Pep Guardiola's side were close to their scintillating best during the opening exchanges at Wembley and established a 2-0 lead inside 25 minutes.
Gabriel Jesus' 10th Premier League goal of the season and an Ilkay Gundogan penalty – replays showed the contact from Hugo Lloris' lunge on Raheem Sterling occurred fractionally outside the box – put City in the driving seat but Christian Eriksen reducing the arrears in the 42nd minute left the runaway league leaders again looking vulnerable.
They held firm under probing Tottenham pressure early in the second half before Sterling rescued his latest scattergun showing in front of goal with a game-sealing strike in the 72nd minute.
Leroy Sane almost gave City the lead in stunning fashion after four minutes, crashing a back-post volley against the post following Sterling's delivery from the right.
Sterling teed up Gundogan for a shot that was deflected behind in the 19th minute and Spurs barely left their own half for an extended passage of play following the resulting corner.
Just when they appeared to have pushed City back to where they wanted them, Vincent Kompany lifted a raking ball over the top of the home defence and Jesus kept his cool under pressure from Davinson Sanchez to slot home.
Heads did not clear in the home defence and, after Jesus failed to capitalise on the referee's advantage with a second goal, play was brought back for Lloris' indiscretion.
The Tottenham goalkeeper could not atone for his rashness by denying Gundogan, who coolly converted as he did from 12 yards on this ground in the 2013 Champions League final for Borussia Dortmund.
Lloris beat away a rasping David Silva drive in the 33rd minute but City's level dropped markedly before half-time to allow Spurs back into the contest.
Having succeeded in taking a goal off his team-mate this week, Harry Kane cutely played in Eriksen, who enjoyed a slice of luck when Aymeric Laporte's challenge played the ball back against him and it flew past Ederson.
City struggled during the opening stages of the second half, ceding possession regularly to Guardiola' clear irritation.
Tottenham's pressure eased after the hour passed and Jesus should have restored the two-goal cushion, skewing wide on the end of Gundogan's excellent throughball.
Sterling's misses preceded City's fall from grace against United and his was the greatest relief of all when, having inexplicably dallied with the goal at his mercy in the 71st minute, he slammed home the rebound after Lloris brilliantly denied Jesus.
Kevin De Bruyne's majestic volleyed pass gave Sterling the chance to add a second but he skewed wide with Sanchez in close attendance.
Key Opta stats:
- Manchester City have won 14 away games in the Premier League this season – the only side to have won more in a single campaign is Chelsea in 2004-05 (15).
- Spurs were unbeaten in 14 games in the Premier League before this defeat (W11 D3); indeed, the last team to beat them were Pep Guardiola's side back in December (4-1 at the Etihad).
- Prior to this evening, Spurs had not lost a Premier League home game by a margin of two or more goals since August 2014 (0-3 v Liverpool).
- Raheem Sterling scored his 22nd goal of the season for Manchester City, which is now at least twice as many as he has registered in any of his previous seasons in all competitions (11 in 2014-15 and 2015-16).
- Christian Eriksen has netted in each of his last four games for Spurs in all competitions (five goals); his longest scoring streak for the Lilywhites.
- Pep Guardiola's side are one of three clubs to have won away at all three of Arsenal, Chelsea and Spurs in the same Premier League campaign (alongside Coventry in1993-94, Charlton in 2001-02 and Blackburn in 2002-03).
- Tottenham conceded a goal from the penalty spot in the Premier League for the first time in 59 games, last conceding against West Ham in November 2016.