The Romanian was bidding for a fourth singles title of the year but was shocked instead, losing 2-6 6-0 7-6 (7-4) ??to her French opponent.
World No 43 Mladenovic was outplayed in the first set but won the second in only 20 minutes as 23-year-old Halep imploded with five double-faults.
Mladenovic failed to serve out the match at 5-3 in the third, but clinched the tie-break when Halep netted a backhand.
It was her third upset of the week at the grass-court tournament, having previously ousted world No 5 Eugenie Bouchard, last year’s Wimbledon runner-up, and world No 10 Barbora Strycova. ??
The 22-year-old will now play sixth-seeded Karolina Pliskova of the Czech Republic, who beat third-seeded Carla Suarez Navarro 6-2 6-2.
The other semi-final will be an all-German affair between Sabine Lisicki and Angelique Kerber.
Lisicki beat Daniela Hantuchova by 7-6 (7-2) 6-2, while Kerber ousted Katerina Siniakova 6-2 6-4.