A header from N. Thanabalan four minutes from time gave Malaysia a priceless 1-0 win over Indonesia in the semifinals of the Southeast (SEA) Asian Games on Saturday night in a front of a capacity 80,000 crowd at Shah Alam Stadium.
In Tuesday's final, Ong Kim Swee's men will face defending champions Thailand, who struck an added-time winner through Chanrop Samphaodi in their semifinal against Myanmar at Selayang Stadium.
Malaysia held a psychological advantage over Indonesia, having beaten them 3-0 at the AFC U23 Championship qualifiers in Bangkok last month.
As expected, Malaysia eased into the game with more possession, giving Indonesia a big scare when S. Kumaahran's cross was hastily cleared for a corner.
But the Indonesians were not overawed by the occasion, and slowly began to create chances of their own.
Yabes Roni saw his shot from the edge of the penalty box cleared off the line before Septian David turned in a dangerous cross that lacked a finisher.
Indonesia were also aggressive in challenges, and S. Kumaahran fell under a heavy one which forced Ong into his first substitution.
The new boy, Jafri Firdaus Chew, forced Indonesia goalkeeper Satria Tama into his first save from a corner.
The first half ended with both sides still looking to take a foothold in the semifinal.
The second half was like the first, with both defences on top, as opposing forwards were reduced to taking shots from distance.
Indonesia's biggest chance arrived in the 62nd minute through their captain Evan Dimas. The former whiz kid did well to create space for an effort which just flew wide.
The home support turned on the volume, and the hosts obliged by ramping up the pressure. Syamer Kutty Abba saw a drive from the edge box take a heavy deflection on its way out.
Matthew Davies's juggle and half volley flew harmlessly wide soon after, as the game picked up intensity with the minutes ticking down.
Malaysia threw more bodies forward and almost scored through Jafri, who flashed a header just wide from the Safawi corner.
The pressure paid off four minutes from time. N. Thanabalan, who had been quiet throughout, rose highest to meet Nor Azam's corner with a deft header into the bottom corner.
Indonesia tried desperately to muster a response, but the hosts hung on to book their first final since 2011.
Malaysia: Haziq Nadzli (GK), Matthew Davies, Adib Zainuddin (C), Safawi Rasid, Nor Azam Abdul Azih, Adam Nor Azlin, S. Kumaahran (Jafri Firdaus Chew 17'), N. Thanabalan (Syahmi Safari 85'), Syamer Kutty Abba, Syazwan Andik, Irfan Zakaria
Indonesia: Satria Tama Hardiyanto (GK), Putu Gede, Andy Seyto, Evan Dimas (C), Ezra Harm (Saddil Ramani 78'), Febri Hariyadi, Ricky Fajrin, Hanif Abdurrauf, Yabes Roni, Muhammad Rezaldi, Septian David