
The Philippines went ahead in the 27th minute, courtesy of Jefferson Tabinas, before Harimau Malaya equalised in the 43rd minute through Syamer Kutty Abba.
Malaysia took the lead after being awarded a penalty in the 73rd minute, which saw Terengganu-born winger Safawi Rasid score from the spot.
The team will now face Lebanon this Sunday at Bukit Jalil, after the latter defeated defending champions Tajikistan 1-0.
Tajikistan beat Malaysia 2-0 in the final to win the tournament last year.
The tournament, once a highlight of the Asian football calendar, made a comeback last year after a nine-year lapse.
The Philippines will now take on Tajikistan in the battle for the third place, also on Sunday.