Halep hit 21 winners and won five out of eight break points to prevail 3-6 6-1 6-2 and secure her number one ranking going into next week and top seeding for Melbourne ahead of Caroline Wozniacki and Garbine Muguruza.
However, the Romanian did not have it easy until her rival suffered a thigh problem late on in the match after blazing through the first set to take the lead.
Caught off guard by Duan's big hitting early on, Halep turned things around in the second set and broke the world number 91 twice for a 5-1 lead before levelling the contest.
Golden age of women’s tennis demands more respect
Duan took a medical timeout and returned for the decider with heavy strapping on her left thigh.
Halep, who battled past Duan in their previous meeting in Eastbourne last year, took advantage as Duan struggled to find her rhythm and raced to a 5-0 lead. She then subdued a late fightback to seal the win in 97 minutes.
"I knew that she is playing really hard and hitting every ball. I knew I had to be strong on my legs," Halep said.
"After the first set I was thinking I have to find rhythm, to stay closer to the baseline and open the court better, which I did... It was a very tough match."
Halep's compatriot and fourth seed Irina-Camelia Begu overcame Russia's Ekaterina Alexandrova 4-6 6-1 6-2. She was joined in the quarter-finals by Czech Katerina Siniakova who beat China's Wang Yafan 7-5 6-3.
'A spinny forehand and big game' - What makes Swiatek so good on clay?
Barty enjoys birthday victory comeback over Svitolina to reach Stuttgart final