Halep had taken the first set on a tie-break, after saving four set points against American third seed Stephens.
Halep made the stronger start, dictating rallies from the baseline to race into a 4-1 lead after twice breaking Stephens in the opening five games.
Yet reigning US Open champion Stephens rallied superbly to claw her way back into the contest, breaking twice to level at 4-4.
That however proved to be the cue for Halep to respond, breaking back after a net cord sat up invitingly for the Romanian, who crushed a winner into the corner for 5-4.
Stephens appeared to be closing in on the first set in the next game, when a wild forehand from Halep -- her 20th unforced error -- handed her opponent two set points.
Stephens again looked to be on the brink of the first set after surging into a 5-1 lead which soon became 6-4 in the tiebreak.
But once again the American was unable to seal the deal, Halep recovering to win the next four points for 8-6.
Stephens responded brilliantly in the second set however, breaking Halep twice in the first three games before advancing into a 5-3 lead.
Once again though Stephens appeared to be on her way to squandering the momentum, wasting three set points in the ninth game before finally converting her to force a decisive third set.
Both players traded early breaks in the decider before Halep secured the 13th break of the match in the fifth game for a 3-2 lead.
A hold left her 4-2 up and she bagged another break in the seventh game to go 5-2 ahead when Stephens wearily duffed a straightforward volley into the net.
Stephens refused to go quietly though, saving a match point before breaking for 5-3, and then saving two more match points to hold.
Halep was not to be denied however, thumping down an ace to seal a memorable win on her next service game.