French Open champion Halep, who won last week's Rogers Cup in Montreal, will face Kiki Bertens in Sunday's final after the Dutch player rallied past Czech Petra Kvitova 3-6 6-4 6-2.
The 20-year-old Sabalenka had taken down three top 20 players on her way to the semi-finals but struggled to keep pace with Halep, who collected her 450th career win.
'Time to end our working relationship' - Halep and coach Cahill part ways
After Halep broke at 3-2 in the first set, the Romanian blunted Sabalenka’s firepower and broke once more to take it.
The second set was more intense as Sabalenka pulled level at 4-4 before Halep took the next game.
A handful of errors by Sabalenka gave Halep her first match point but Sabalenka fought back with an ace into the corner.
Sabalenka had an easy volley at the net on the next point but with the court wide open she sent the ball wide.
Halep would not need another chance, closing out the match on the next point.
The final will be the sixth of the year for Halep, who also made the 2015 and 2017 Cincinnati finals.
Earlier on Saturday, Bertens blasted 10 aces against world number six Kvitova to claim her seventh consecutive win over a top 10 opponent.
It was also her second victory over Kvitova in nine days after beating the Czech in the third round of the Rogers Cup.
"It was a really tough one, but I'm so happy to be in the finals here," Bertens said.
"We've put a lot of work in to get more fit, and play more aggressive on the hard courts, and it's working out."
Bertens, world number 17, lost the last five games of the first set but rebounded to take the second in which there were seven breaks of serve.
The Dutch number one did not face a break point in the final set and dropped just three points on serve.
Kvitova had 48 unforced errors in the match, including eight double faults, and lost serve seven times in her third marathon three-setter in the Cincinnati sun.
Opinion: No multiple major winners again, but Barty’s 2021 season should be given more respect
'What a performance' - Reaction to Fernandez roaring into US Open final