Manchester City were determined to recover from a 4-0 loss at Everton and swept into a commanding advantage courtesy of two uncharacteristic errors from Spurs keeper Hugo Lloris.
France international Lloris headed an attempted clearance straight at Leroy Sane four minutes after half-time to allow the City attacker a simple finish, then dropped Raheem Sterling’s routine cross straight at Kevin De Bruyne’s feet five minutes later.
Spurs responded swiftly through Dele Alli’s header before they were the beneficiaries of a decision that left Guardiola raging and paved the way for the visitors to scramble a point.
Referee Andre Marriner ignored Kyle Walker’s push on Sterling as he raced into the area – and seconds later Son swept a low finish past City keeper Claudio Bravo with 13 minutes left.
City pressed for a winner but were frustrated once more when Brazilian teenager Gabriel Jesus, on as for his debut as a substitute for Sterling, saw an effort ruled out for offside.
The result means Man City remain fifth, three points off second-place Tottenham and nine away from leaders Chelsea, who play Hull City on Sunday.
Mauricio Pochettino’s side would not put this display anywhere near the top of any list of their best performances this season – but they may come to regard this as a priceless point earned without playing well.
Spurs were over-run for much of the game, unsettled in possession by the pressure applied by City, but showed resilience and determination to get a draw they barely deserved.
They were also grateful for City’s generosity in front of goal as they wasted as succession of chances, and to referee Marriner for refusing what appeared to be a clear penalty when Walker shoved Sterling as he raced clear in what proved to be a decisive moment.
Spurs’ travelling fans celebrated as if this was a victory at the final whistle. Some days you just take the point and get home – to be able to do that at the home of close rivals will make it taste even sweeter.