Sergio Aguero missed a first-half penalty and Harry Kane was forced off injured before Son's strike settled the first European match at the new Tottenham Hotspur Stadium on Tuesday.
City had won all of the past three meetings with Spurs but, without Bernardo Silva or Kevin De Bruyne in the starting line-up, they seemed to lack a lot of the spark that has kept them on course for an unprecedented quadruple this season.
Mauricio Pochettino's side were thwarted by Ederson for much of the match, but the Brazil goalkeeper allowed Son's strike to slide beneath him and leave City trailing ahead of the return leg.
Eleven minutes in, Danny Rose was penalised after a VAR review for blocking Raheem Sterling's shot with his arm, but Aguero's spot-kick was comfortably saved by Hugo Lloris.
The incident seemed to galvanise Spurs, with Kane seeing a shot well stopped by Ederson, who also denied Rose just before the break.
City were not quite at their slickest but Aguero did flash a shot just past the right-hand post, as they continued to look a threat on the counter-attack.
Sterling was denied by Lloris shortly after half-time as the game became more frantic, but the atmosphere was rather quelled an hour in, when Kane had to be helped down the tunnel after apparently damaging his ankle in a challenge with Fabian Delph.
City suddenly looked in the ascendancy, but it was Spurs who found the breakthrough 12 minutes from time. Son just kept Christian Eriksen's pass from going out for a goal-kick, skipped past Delph's challenge and saw a left-foot shot squirm beneath Ederson's body.
18 - Son Heung-Min has now scored as many goals in 40 games in all competitions this season for Spurs as he managed in 53 appearances in the whole of 2017-18 (18 goals). Deadlock. #TOTMCI pic.twitter.com/9Iq1tcivDp— OptaJoe (@OptaJoe) April 9, 2019
What does it mean? Spurs have the edge but Kane a huge concern
Most Spurs fans would have taken a 1-0 win before the match and, given Aguero's failure from 12 yards and Kane's injury, this is a hugely commendable result.
That said, the loss of Kane for the second leg would be a major blow to their hopes of progressing, and will give them concern in the Premier League as they aim to finish in the top four.
Pep Guardiola will be frustrated not to have scored at least, and he will be wary of risking all-out attack in the return leg at the Etihad Stadium out of fear of conceding an away goal.
Son makes the difference again
This was not his finest display in a Spurs shirt, but he has rarely scored a goal on a grander stage. He is fast becoming Pochettino's ultimate go-to hero.
Off-night for Aguero
His tame penalty rather set the tone for 70 pretty ineffective minutes, in which he only had 18 touches of the ball.
Key Opta facts
- Spurs have progressed to the next round on each of the last nine occasions they've won the first leg of a European knockout match (excluding qualifiers).
- Manchester City have lost all five of their European matches against English opposition, including all three in the Champions League.
- Son Heung-Min has scored as many goals in 40 games in all competitions this season for Spurs as he managed in 53 appearances in the whole of 2017-18 (18 goals).
- Sergio Aguero has missed more Champions League penalties than any other player since his debut season in the competition in 2008-09 (four).
- Spurs goalkeeper Hugo Lloris has saved all three of the penalties he's faced in all competitions in 2019.