It was another great escape for the Koreans, who needed a 96th-minute penalty from Hwang Hee-chan to stay alive after Australia took the lead in the first half through Craig Goodwin.
Tottenham’s Son, Asia’s best player and South Korea’s skipper, had yet to fully make his mark at the tournament in Qatar but he delivered when it counted.
First he won a penalty when Lewis Miller brought him down in injury time at the end of normal time, then he stepped up to curl home a sublime free-kick from the edge of the box in the 104th minute.
South Korea have not won the Asian Cup in 64 years and Son said he would accept nothing less than the title.
“There are only going to be four teams left in Doha (after the weekend), and only one is going to lift the trophy,” he said.
“Fatigue, whatever – there are no excuses. We’re just trying to win the trophy and bring it back home.”
Son is South Korea’s regular penalty-taker but he handed the ball to Wolverhampton Wanderers forward Hwang after winning the spot-kick.
“At that moment I was a little tired and Hee-chan was confident, so I said ‘fine’,” said Son.
“He’s an important player and it was a good chance to prove it.”
Coach Jurgen Klinsmann, who has been under fire for South Korea’s performances in Qatar, led his team in a wild celebration at the end.
It was the fourth time in five games that the Koreans had scored in second-half injury time.
“I don’t want to leave it so late all the time, believe me,” said Klinsmann, a World Cup winner with Germany as a player.
“I would be happy to get it done earlier, but it is maybe our story in this tournament to leave it late.”
Australia ‘devastated’
Australia finished the match with 10 men after Aiden O’Neill was red-carded for lunging at Hwang at the end of the first period of extra time.
“We’re devastated at the moment, quite emotional for all the players and the staff,” said Australia’s coach Graham Arnold.
“For the first 90-odd minutes we did very well until giving that penalty away. It’s been a great tournament for a lot of my players.”
South Korea’s semi-final opponents will be Jordan, who beat tournament surprise packages Tajikistan 1-0 earlier in the day’s other quarter-final.
The Koreans will have to play without Kim Min-jae after the Bayern Munich defender picked up his second booking of the tournament.
“Not having Min-jae is obviously not good for us because he is our leader at the back and a fantastic professional,” said Klinsmann.
“But we have a number of excellent players.”
Australia came into the match with two days’ extra rest, with South Korea also battling the effects of a gruelling penalty-shootout win over Saudi Arabia in the last 16.
South Korea dominated the first half but it was Australia who opened the scoring in the 42nd minute.
Hwang In-beom gave the ball away in defence and Connor Metcalfe floated the ball to the back post for Goodwin to volley home.
The Socceroos had chances to double their lead but failed to take them and the Koreans made them pay with the equaliser from the spot deep into injury time.
Son then completed the turnaround, curling the ball inside Maty Ryan’s post for the winner.