Pep Guardiola's men dominated the match but couldn't find a way past Hugo Lloris in the Spurs goal until eight minutes from time.
This is the first leg of a potential treble for Guardiola, with City set to win the Premier League and in the semi-final of the Champions League. They play PSG on Wednesday in the latter.
So which players stood out most on Sunday?
✔️ Joao Cancelo: 8.1
The decision to swap Danilo for Joao Cancelo in 2019 has proven to be one of the best swap deals ever if you are a Manchester City fan, and one of the worst ever if you are a Juventus supporter.
The Portuguese wing-back was once again a constant threat throughout the game for Spurs as he bombed up and down the pitch.
There are few better dribblers and more exciting performers in Europe than Cancelo, who has proven to be one of the best players in England this season.
❌ Harry Kane: 5.5
In fairness to the England centre-forward, he was horribly isolated in attack as Man City dominated possession and territory from start to finish.
Indeed, the gulf in class between these two teams will surely make Kane question whether he should stay at a club who are well behind the trophy-winning sides in the game.
Nevertheless, Tottenham would have still hoped more from the 27-year-old, who barely got a kick all game.
✔️ Aymeric Laporte: 8.2
Tottenham fans will complain that Laporte should have been sent off in the first half for what appeared to be two clear yellow card offences.
However, the centre-back survived with only one booking and it proved to be decisive for City.
Despite Man City creating numerous chances, it took a header from a set-piece to finally break the deadlock with eight minutes remaining.
Laporte soared above his marker to head into the corner from a Kevin de Bruyne corner.