The victory was the seventh consecutive for Romanian Halep who won last week's Rogers Cup in Montreal where she beat Barty in the semi-finals.
"It was very tricky, and she's a tough opponent because she's mixing the rhythm," Halep said in an on-court interview. "I'm really happy I can go through this, and tonight I'll have another match."
Bertens stuns world number one Halep for Cincinnati title
Because of the tournament's many weather delays, Halep will be back on the court later on Friday to play Ukrainian Lesia Tsurenko in the quarter-finals.
"I feel like she missed more than me today," Halep said of Barty. "When I started to play more on the backhand and make her move, it was better for me."
The Romanian rallied from a break down in the first set, as Barty won three of the first four games. Halep then won the last three games after holding at love when she served to stay in the set.
Halep also lost the first two games of the second set, as number 16 seed Barty led by an early break, but the Romanian won four straight games to take control of the match.
Still Barty fought back and had a break point in the final game that would have leveled the score at 5-5, but Halep sealed victory with a backhand winner.
WATCH: Halep hits outrageous tweener in Cincinnati final
Halep to meet Bertens for Cincinnati title