The 26-year-old player, who was the first Romanian to compete at this stage at Melbourne Park, saved two match points on her way to a 6-3, 4-6, 9-7 victory to take the German out of the tournament. Both Halep and Kerber had their chances to put the match away in the 68-minute-long third set.
Halep was serving for the match at 5-3, but was broken after Kerber ended a 26-stroke rally with a backhand winner, but exhaustion took the best of her. The Romanian had two match points in the next game, but Kerber saved the first with a backhand down the line and the second when Halep hit into the net.
After Kerber broke to take a 6-5 lead, she then had two match points of her own, but Halep saved them both and then broke back to level the match at 6-all. Serving at 7-8, the German saved a third match point before Halep finally converted on the fourth when the German sent a ball long.
Now, she will face Caroline Wozniacki, a straight-set winner over Elise Mertens, with both women looking for a first major title. The world number one ranking will also be up for grabs for the new Australian Open champion.