Aymeric Laporte's header eight minutes from time finally ended Tottenham's resistance as its 13-year wait to win a trophy was extended.
For the first time in 13 months, a football match in England had designated fans from both teams inside the stadium in one of a series of test events at Wembley as coronavirus restrictions are eased across the UK.
Defeat by Chelsea in the FA Cup semi-finals last weekend means City cannot claim an unprecedented quadruple of trophies this season.
However, it remains on course for a treble with the first leg of its UEFA Champions League semi-final against Paris Saint-Germain to come on Thursday (AEST) before possibly sealing the Premier League title next weekend.
Pep Guardiola's men played like champions as after a slight dip in form in recent weeks, they pinned Tottenham back from the first whistle and should have won by a far more comfortable scoreline.
Spurs sacked manager Jose Mourinho last week amid a chaotic few days as both City and Tottenham also quickly withdrew from plans to join a European Super League.
But City looked in a different league from the off as they peppered Hugo Lloris's goal without finding the breakthrough.
Raheem Sterling saw an effort on goal blocked by Toby Alderweireld before Lloris made a stunning save from point-blank range to turn behind Phil Foden's shot.
A Sterling dink over Lloris then spun just wide before Riyad Mahrez twice flashed powerful efforts inches wide.
Spurs somehow held out without conceding until half-time as Lloris was called into action again to deny Joao Cancelo.
Despite Harry Kane's recovery from an ankle injury to start, Tottenham had offered nothing as an attacking threat until Giovani Lo Celso forced Zack Steffen into a fine save a minute into the second half.
However, the majority of the chances continued to come and go at the other end.
Ilkay Gundogan sliced wide at the near post before Lloris was forced into another flying save to deny Mahrez.
When the breakthrough finally arrived, it came from an unlikely source as Laporte rose highest to head home Kevin De Bruyne's free-kick at the back post.
Under interim boss Ryan Mason for just the second time, Spurs' energies were spent after conceding as they failed to muster any response to try and take the game to extra-time.
Sterling and Foden were guilty of being wasteful once more in front of goal in the closing minutes, while Mahrez had a second goal ruled out for offside.
But one goal was enough to secure a seventh major trophy in Guardiola's five seasons in charge in Manchester.