Former world number one Halep dismantled 28th seed Kontaveit 6-1 6-1 in just 53 minutes on Rod Laver Arena at Melbourne Park.
A two-time grand slam champion, Halep barely raised a sweat as the fourth seed reeled off 11 consecutive games before the helpless Kontaveit finally halted the slide at 5-0 in the second set, but it was too little too late.
Halep – the 2018 runner-up – will face either Garbine Muguruza or Anastasia Pavlyuchenkova for a spot in her second Australian Open final.
Kontaveit was attempting to become the first Estonian to reach a slam semi-final after beating Astra Sharma, Sara Sorribes Tormo, Belinda Bencic and Iga Swiatek en route to the final eight.
But she was no match for Romanian star Halep, who is yet to drop a set at this year's major in Melbourne.
In a battle from the baseline, Kontaveit held her own early but she was quickly put to the sword as Halep broke in the third game and never looked back.
Kontaveit, who initially dug herself out of a 0-40 hole in the fifth game as Halep broke at the fifth opportunity, faded quickly without a trace.
Halep continued where she left off in the second set, racing out to a devastating 5-0 lead in front of a stunned crowd.
Kontaveit stopped the rot to hold serve, though Halep – who has never dropped a set against the Estonian – served out the second set in just 24 minutes.
Halep  bt Kontaveit  6-1 6-1
Halep – 12/10
Kontaveit – 15/15
Halep – 5/1
Kontaveit – 0/0
BREAK POINTS WON
Halep – 5/11
Kontaveit – 0/1
FIRST SERVE PERCENTAGE
Halep – 78
Kontaveit – 66
PERCENTAGE OF POINTS WON ON FIRST/SECOND SERVE
Halep – 78/44
Kontaveit – 48/44
Halep – 54
Kontaveit – 34