World number seven Svitolina then raced to a 3-0 lead in the decider, but Halep dug deep to win six of the next seven games and reach Saturday’s final.
"I'm happy because I didn't give up... The two finals that I played against her in Rome I gave up and I was not ready to fight," said Halep, who will face unseeded Belgian Elise Mertens in Saturday's final.
"Now I change that, and it makes me happier, because I showed myself that I'm able to do that."
"The mental part is really important... but definitely today I was stronger physically as well, because against Svitolina (it) is never easy to win a match. She's very strong on the legs."
Mertens scored her second top 10 victory of the week as she battled past three-times Grand Slam champion Angelique Kerber 6-4 2-6 6-1.
Mertens, who defeated fifth seed Kiki Bertens in the quarter-final, has failed to win a set against Halep in her previous two meetings -- both on clay last year.