The world No.4 prevailed 0-6 6-4 7-6 (14-12) in a match that went the distance and will take on Paula Badosa, who beat in-form Daria Kasatkina in the other semi-final.
Krejcikova had lost five in a row against top 10 players and was soundly beaten in the first set, but she held in the second and earned the only break in the ninth game to level up.
That set up an incredible decider, which No.4 seed Kontaveit led 6-5, but she could not take the first three of her match points as Krejcikova battled valiantly to force a tie-break.
Krejcikova felt her opponent's pain as she then squandered two match points of her own when leading 6-4.
It appeared neither player wanted to win as two more match points went begging for Krejcikova and four for Kontaveit in what turned into a real classic.
But Krejcikova eventually took her fifth opportunity to see off Kontaveit and reach a sixth WTA singles final.
"I think from both sides it was a really, really tough match," Krejcikova said. "I think we played wonderful tennis.
"It was very, very tight, and I'm really happy that I was able to hold the nerves better and that I won this match.
"I was just playing, just trying to fight for every single ball. When I had those match points down, I was just trying to figure out how to build up the point and how to win the point."
Badosa awaits Krejcikova in Saturday's final after beating Kasatkina in a match with far fewer twists and turns.
Competing in her second semi-final in as many weeks, it was similar disappointment for Kasatkina as she fell to a 6-2 6-2 loss.
French Open quarter-finalist Badosa hit 26 winners to Kasatkina's 12 and did not look back after winning 14 of the opening 16 points.
At the Adelaide International 2, meanwhile, it will be an all-American final as Madison Keys and Alison Riske advanced past Tamara Zidansek and Coco Gauff respectively.
Riske was given a walkover win against Zidansek, who withdrew with an abdominal injury, while Keys beat compatriot Gauff in three sets.