Arsenal scored through a Cristian Romero own goal and a Bukayo Saka penalty, but had less possession than a Spurs side who earned their first point at Emirates Stadium since September 2019 thanks to Son, who became the first Spurs player to score a brace at Arsenal in a Premier League match since May 1993.
It keeps fourth-placed Spurs level on points but a place above their local rivals, who are four points behind leaders Manchester City, whom Arsenal face in two weeks' time.
How the derby unfolded
Spurs were indebted to goalkeeper Guglielmo Vicario in the opening stages. First, he denied Gabriel Jesus with a big left hand before bailing out Destiny Udogie, who accidentally set Eddie Nketiah through on goal with a poor backpass.
But Vicario could do nothing to prevent Arsenal from taking a 26th-minute lead, as Saka cut inside and took a shot that was going wide before Romero stuck a leg out and diverted it into his own net. Romero became only the fourth Spurs player to score an own goal in a Premier League north-London derby.
Arsenal could have doubled their lead just a few minutes later, but Jesus blazed over the bar after dispossessing James Maddison in his own box.
However, Spurs ended the first half the better of the two teams, and their first good chance fell to Brennan Johnson. On his full debut, the Welshman scuffed a finish from Son's cutback that a flying David Raya stopped superbly on his goalline.
But Raya was beaten for the first time as an Arsenal player just four minutes later. Maddison turned away from Saka and passed across goal for Son, who timed his run perfectly to finish in off the far post, before "shh'ing" the Arsenal crowd with his celebration.
And it took the Gunners just nine minutes to retake the lead, Saka converting a penalty down the middle of the goal after Romero had handled Ben White's close-range shot. Romero became the 11th player in Premier League history to score an own goal and give away a penalty in the same match, and the first Spurs player to do so.
However, just 98 seconds later Spurs were back level.
Jorginho was caught in possession by Maddison, who played in Son to finish coolly for his 150th Spurs goal in all competitions. It was a joint-league leading fourth assist of the season by Maddison, and a fifth goal by Son, fewer than only Erling Haaland's eight in the early race for the Castrol Golden Boot.
Son had a chance for a hat-trick in the 69th minute, but his shot from a tight angle was deflected behind, and that was the last good chance for the visitors, who took off Son and Maddison, the latter after seeming to injure a knee.
That put Spurs on the retreat, with Arsenal finishing the match with greater attacking intent. But despite 10 minutes of added time, the home side were unable to create one last big chance to win a pulsating derby featuring 26 shots and seven yellow cards.