Halep, appearing for the first time since a run to the last four at the Australian Open, lost to Sabalenka in their most recent meeting - in Adelaide in January - but had won her prior two encounters with the world number 13.
Despite trailing in the first set, the world number two rallied in the second thanks to three breaks of serve, before cruising in the decider to wrap up a 3-6 6-2 6-2 win over her Belarusian opponent.
The Romanian, a Dubai champion in 2015, will now go up against Jennifer Brady, whose run of upsets continued as she overcame Australian Open finalist Garbine Muguruza to claim her third straight top-20 triumph.
Having already knocked out third seed Elina Svitolina and Marketa Vondrousova in previous rounds, Brady moved into the semis with a 6-7 (5-7) 6-3 6-4 win.
It is the first time in Brady's career that the American has made it into the last four of a WTA Premier event, though she was not fully satisfied with her performance.
"I wasn't feeling my best," she said in quotes reported by the WTA's official website. "Maybe I didn't play my best tennis, but I just found a way to stay in there, compete and come out on top."
The other semi-final will see Elena Rybakina, whose fine run continued with a win over Karolina Pliskova, meet Petra Martic.
Dubai debutant Rybakina has started 2020 in fine form and dispatched world number three Pliskova on Thursday, completing a 7-6 (7-1) 6-3 success in one hour and 41 minutes.
It means Rybakina has made her fourth semi-final in five tournaments so far this year, with a tie against Martic - who beat Anett Kontaveit 7-6 (7-4) 6-1 - her reward.