Kane scored a brace and had a goal ruled out, while Son helped himself to two assists in an excellent attacking display from the Tottenham duo.
Tottenham took the lead twice and twice Manchester City equalised before Kane scored a dramatic winner in stoppage time to complete the double over the Champions.
Dejan Kulusevski opened the scoring at the Etihad as early as the fourth minute before Ilkay Gundogan equalised for City before the break.
Son and Kane then combined for the 36th time in the PL to restore Spurs’ lead before the hour mark.
Kane thought he had extended the lead for Spurs when he added a third but it was chalked off by the VAR.
Just when Spurs thought they had done enough to take all three points, Man City were awarded a penalty by the VAR after Romero handled Bernardo Silva’s cross in the box.
Algerian playmaker Riyah Mahrez stepped up to the plate to convert expertly to draw the defending champions level for the second half.
However, Spurs would have the last laugh as Kane struck three minutes later when he headed in a dramatic third to seal the win for Antonio Conte’s men.
The home side dominated the match from start to finish but Spurs defended well and took their chances when they came.
An excellent performance from the North London side, who avoided a fourth consecutive defeat in the league since November 2004 with that result.
With this result, Manchester City lose at home for the first time in 112 days, a run of 15 matches in the PL.
Spurs move up to seventh in the PL table with 39 points, four points from the last Champions League spot with two games in hand.
City are now just six points above second-placed Liverpool who defeated Norwich City earlier on and have a game in hand.
AON