Mauricio Pochettino’s side finally made the breakthrough on 83 minutes, when Son’s shot went beneath Martin Dubravka for his second goal in as many matches since returning from the Asian Cup.
Spurs started impressively and Lucas Moura headed an Erik Lamela cross wide before the latter nodded against the crossbar.
Five minutes into the second half, a ball in from the right by Newcastle’s DeAndre Yedlin was met by Salomon Rondon but his header struck the post.
Christian Eriksen’s clever flick beat Dubravka but Fabian Schar cleared off the line, while Hugo Lloris produced a fine save to deny Ayoze Perez before Son’s winner.
The victory means Spurs are now on 57 points, one ahead of third-placed Manchester City who play Arsenal on Sunday. Newcastle are 14th with 24 points.