Tenth seed Konta gave up the only break of the first set but hit back to race into a 3-0 lead early in the second.
Third seed Halep recovered to force a tie-break but Konta dug deep to take it to a decider, which she won at a canter en route to a 3-6 7-6 (9-7) 6-2 win.
Konta now faces Venus Williams, who defeated Angelique Kerber 7-5 6-3.
The other semi-final will be between Caroline Wozniacki and Karolina Pliskova.
Halep, who saved a match point in her win over Sam Stosur in the previous round, edged an even first set thanks to a lone break of the Konta serve, but struggled at the start of the second as Konta took control.
The Briton was just a point away from opening a 4-0 lead but that was the cue for Halep to push again, claiming a vital hold and breaking in the next to get the set back on service.
“I went up to a 3-0 lead and had chances to go 4-0 up, but she’s an incredible player and I knew it wouldn’t be over until we shook hands,” said Konta.
An unpredictable second set was decided in Konta’s favour after a scrappy tie-break, after which a clearly rattled Halep was unable to find her rhythm as Konta eased away to victory in two and a half hours.
“I’m really happy to have come through and am looking forward to the next round,” added Konta. “It’s going to be a tough one.”
In the men’s event, Spain’s 14-time Grand Slam champion Rafael Nadal recorded a 6-2 6-3 win over American Jack Sock to reach the last four.
He will now face Italian Fabio Fognini who defeated second seed Kei Nishikori of Japan 6-4 6-2 to become the first unseeded player in 10 years to make the semi-finals.
Fognini, 29, had beaten Jo-Wilfried Tsonga and Feliciano Lopez to reach the last eight.
In the men’s doubles, Britain’s Jamie Murray and partner Bruno Soares bowed out at the quarter-final stage after a 2-6 6-3 10-8 defeat by sixth seeds Lukasz Kubot and Marcelo Melo.
Posted by Juliet Ekwebelam (Source: BBC)