The Romanian, champion at this event three years ago, prevailed 7-6 (7-4) 6-4 to move into the round of 16, where Lesia Tsurenko or Zhu Lin await.
Bouchard has failed to rescale the heights of 2014, which produced a Wimbledon final appearance as well as runs to the last four of both the Australian and French Opens, but the Canadian showed signs of promise against the world number two.
After a closely contested and high-quality opening set went to a tie-break, the third seed found another gear in the second and closed out the victory, improving her head-to-head record against the world number 79 to 4-1.
Bouchard had been soundly beaten 6-2 6-2 in the pair's previous meeting at the 2018 Australian Open but she made an encouraging start here only to net a backhand volley with the court wide open at 2-2 30-30 on her opponent's serve.
Halep made the most of that escape to hold and then break as Bouchard erred on the backhand side, but the match was immediately back on serve as Halep netted a forehand in the next game.
A forehand winner gave a Halep a 4-2 lead at the changeover in the tie-break and the first set was hers as Bouchard sent a volley long with the court open once more.
Halep maintained her momentum with a break to start the second - one which was consolidated by a remarkable forehand pass by way of response to Bouchard's attempted smash.
Halep, beaten by Elise Mertens in Saturday's Qatar Open final having been a set up, showed no signs of a similar lapse here, dropping just three points in her final four service games before Bouchard's long forehand wrapped up a consummate victory.