The 26-year-old Indian, who won two BWF Super 100 titles in Hyderabad and Vietnam this year, displayed a never-say-die attitude during his thrilling 21-17, 16-21, 21-18 win over Heo, ranked 44th in the world.
Sourabh thus set up a final clash with eighth seeded Taiwanese Wang Tzu Wei, who thrashed former World Number 1 Korean Son Wan Ho 21-9, 21-7 in the other semifinal of the Super 300 event.
World No. 36 Sourabh made a good start to the semifinal, opening up a 6-2 lead before grabbing a 11-7 advantage at the break.
The Madhya Pradesh shuttler kept moving ahead despite a spirited fight from Heo and eventually pocketed the opening game.
Stung by the reversal, Heo dished out a better performance in the second game as he led 11-8 at the breather.
After the break, the Korean further increased the gap in the score line with four straight points. Heo kept his nose ahead and won the second game to roar back into the contest.
The decider turned out be a roller-coaster ride with the two players fighting tooth and nail. At the interval, Sourabh managed to hold a one-point advantage but Heo quickly erased it and moved to a 18-15 lead at one stage.
Sourabh then reeled off six straight points to shut the door on his opponent and enter the finals.