Kane and Son struck on 49th and 76th minutes respectively to take already-qualified Tottenham to 13 points and consign Real Madrid to second place in the group with a game left.
It was a plucky display from Spurs who fought back after Gabon striker Pierre-Emerick Aubameyang had broken his five-game goal drought to give Dortmund the lead in the 31st minute.
Spurs are three points ahead of European champions Real and guaranteed first place in the group — by virtue of a superior head-to-head record — despite the Spanish giants’ 6-0 drubbing of APOEL in Nicosia.
Spurs’ win in Germany ended Dortmund’s thin hopes of reaching the last 16 and piles pressure on Borussia head coach Peter Bosz, whose team are winless in their last five games.
Dortmund, third but level on two points with bottom club APOEL, must now hope to hold onto a place in the Europa League knock-out stages, when they face Real away in a fortnight while Spurs host APOEL.
“We’re very happy with the performance and the result, especially after the reaction to the first-half because we didn’t need to lose the game,” said Tottenham coach Mauricio Pochettino.
“Harry Kane’s goal turned things around.
“It’s a fantastic achievement to be top of the table as group winners – it’s a big deal for us.”
Pochettino made four changes from the side that lost 2-0 to Arsenal at the weekend.
England internationals Danny Rose and Harry Winks started alongside South Korea forward Son while Serge Aurier slotted in at right-back.
Dortmund boss Bosz brought in French teenager Dan-Axel Zagadou at centre-back, replacing Sokratis, who is out with a rib injury.
Aubameyang returned from a club suspension for coming late to training and an unauthorised video shoot.
Both teams had half chances in the opening 20 minutes, with Dortmund winger Andriy Yarmolenko firing weakly at Spurs goalkeeper Hugo Lloris before Zagadou snuffed out a cross aimed for Kane, who was bursting into Dortmund’s area.
Aubameyang broke his drought when he tucked away the first clear chance after Yarmolenko’s superb backheel put him in behind the defence.
The Gabon hotshot coolly rolled his shot past Lloris on for his first goal since October 14.
Only a superb reflex save by Dortmund goalkeeper Roman Burki blocked Kane’s volley with half-time approaching, but the England star showed his class when he netted the equaliser four minutes into the second half, pouncing on a mistake after Dortmund right-back Jeremy Toljan lost the ball and tucking his shot past Burki.
Spurs’ tails were up and they took a deserved lead with 14 minutes left when Dele Alli laid the ball into the path of Son, whose side-footed effort hit the top corner of the net.
Only a brave save from Burki denied Tottenham substitute Fernando Llorente from scoring Spurs’ third with time almost up.
Would you like to place a soccer bet? Click here to get started in 3 easy steps.