Halep dropped the first set but got back on track to win the match 2-6, 6-1, 6-3.
Halep lost five consecutive games in the sputtering first set and was broken twice in the third.
She then won the next six games in the third set to advance to the finals.
"I played really well when she had break points to make it 4-1, and I'm really happy with the way I came back in the end," said Halep. "I'm a little bit injured in my leg, but I'm very happy I was able to win today."
Australia's Stosur downed Anastasia Pavlyuchenkova 6-1, 1-6, 6-3 in their semifinals match in Sofia, Bulgaria.
Stosure appeared to cruising after the first set but Pavlyuchenkova turned the tables with three breaks of serve in the second set. The Russian was unable to pick up a break point in the third and was decisively broken midway through the set.
Ohio bar shooting arrested, charged with murder
Beautician charged with giving client fatal silicone butt injection