Son, on as a substitute just after the hour, crossed for Brennan Johnson to finish at the far post in the sixth and final minute of stoppage time.
Pascal Gross fired Brighton ahead from the penalty spot in the first half after Micky van de Ven caught Danny Welbeck.
Spurs improved after the break and equalised when Pape Sarr finished from a tight angle when his initial cross was turned onto the post by Lewis Dunk.
Here's how we rated the Spurs players...
Guglielmo Vicario 8
Extended in the first minute by Welbeck and made a fingertip save to deny Kaoru Mitouma before half-time. Sent the wrong way for the penalty.
Pedro Porro 6
Tested by Mitoma at times but solid defensively and good with the ball.
Cristian Romero 8
Excellent in possession and defensively, repeating stepping out of the back line to intercept Brighton attacks.
Micky van de Ven 5
Fouled Welbeck to concede a spot-kick after being caught in possession by the striker in the first minute, with Vicario forced into a good save.
Destiny Udogie 6
Made a couple of bursts forward but well shackled by Brighton.
Rodrigo Bentancur 5
Lost possession on the edge of the box in the build-up to Brighton's penalty and again before a Mitoma chance. Grew into the game and was involved in the build up to Spurs' equaliser.
Pape Sarr 7
Finished really well for the goal in a energetic display. Occasionally loose in possession but a really important cog in this team.
James Maddison 7
Made Spurs' first big chance with a lovely pass for Richarlison and tested Jason Steele with a free-kick. Crucial in the winner, passing to Richarlison.
Dejan Kulusevski 7
Came alive in the second half and played through Sarr ahead of the equaliser. Earlier forced a save from Steele from close range. Unlucky to be substituted when he was.
Timo Werner 6
Had the beating of his man down the left but end product was mixed. Went close with a low shot after a direct run.
Fired straight at Steele when set through by Maddison and wasted some good positions. Did create a big chance for Richarlison and played a big part in the winner.
Heung-min Son (Bentancur 62') 7
Crossed for Johnson's winner in a decisive return to the side.
Yves Bissouma (Werner 62') 7
Busy in a bright and tidy return to club action.
Brennan Johnson (Kulusevski 62') 7
Struggled to hold down the right flank in the same way as Kulusevski but made the difference with an emphatic back post finish to win the game.
Ben Davies (Sarr 80') 6
Got into a couple of promising positions.
Pierre-Emile Hojbjerg (Udogie 80') 7
Put himself about and was involved in the build-up to the winner.
Not used: Forster, Skipp, Dragusin, Emerson.