Late goals by Teerathep Winothai and substitute Ronnachai Rangsiyo gave the Thais a 3-1 aggregate victory that sets up a final with Singapore or Vietnam, who meet on Sunday.
"They were difficult to break down but I knew Indonesia wouldn't be able to keep it up," Thailand coach Peter Reid said after the match on Saturday.
"They put us out of our stride but we were patient, we worked through it. It takes 90 minutes to win a match."
Stunned
Indonesia began the match trailing 1-0 from the first leg but stunned the packed Rajamangala stadium when Nova Arianto scored with a near post header after nine minutes.
Thailand fought hard for an equaliser but squandered their chances, with misfiring striker Teerathep crashing a volley against the bar while weak efforts from Suchao Nutnum and Teerasil Dangda failed to trouble keeper Markus Rihihina.
But Teerathep found his scoring touch to fire home Teerasil's cross from close range in the 73rd minute and Ronnachai got a last-gasp winner after a goalmouth scramble.
Singapore will host Vietnam at the National Stadium on Sunday having drawn the first leg of their semi-final 0-0 in Hanoi.
The two-legged final will be played on December 24 and 28.
Content on this website is for general information purposes only. Your comments are provided by your own free will and you take sole responsibility for any direct or indirect liability. You hereby provide us with an irrevocable, unlimited, and global license for no consideration to use, reuse, delete or publish comments, in accordance with Community Rules & Guidelines and Terms and Conditions.