The match was the first in charge for Tottenham interim manager Ryan Mason, who took over after Spurs sacked Jose Mourinho on Monday, making him the youngest coach ever to oversee a Premier League match at 29 years, 312 days old.
Tottenham were on the back foot in the early stages of the match, with goalkeeper Hugo Lloris called into action for back-to-back saves from point-blank range inside of five minutes.
The visitors then scored a deserved opener from a corner kick just before the 30-minute mark when Danny Ings' glancing header beat Lloris at the far post to give Southampton a 1-0 lead that they took into the half-time break
Spurs drew level on the hour, when Bale picked up a deflected shot at the back post and curled a lovely left-footed strike past Saints keeper Alex McCarthy from a tight angle.
Son looked to have put Tottenham in front as the second half wore on, but his first-time strike from 12 yards out was ruled no goal after a video review showed that Lucas Moura had obstructed McCarty from an offside position on the shot.
With the game looking like it was headed for a draw, VAR awarded the hosts a penalty just before full-time and Son stepped up to calmly dispatch his spot kick and hand Tottenham all three points.
The result was massive for Tottenham in their quest for European football as they moved ahead of Liverpool in the table on goal difference, while having played a game more than Jurgen Klopp's side.