The No.7-seeded Zakopalova had lost the pair's last three meetings in straight sets but this time was all over the Australian, breaking serve five times during the match en route to a 63 62 victory.
"I'm so happy I beat a player like Sammy - she's a Grand Slam champion, so for me it's a big victory here," Zakopalova said afterwards. "I was leading 2-0 in the first set very fast and then it got to 2-all, but I just said to myself to keep going for every point. It was a tough draw and I knew she'd have the crowd behind her but I just knew I had to give 100% and we would see if it was enough or not."
Zakopalova's win over the 2011 US Open champion was the 450th match win of her career.
Next up for Zakopalova is someone who's just on the up - in a battle between Spanish qualifiers in the other semifinal, Garbiñe Muguruza won the first eight games - and almost all of the other ones - to beat Estrella Cabeza Candela, 60 61. Muguruza will now be playing the first WTA final of her career.
Though she's the favorite in the final now, there are a few things Zakopalova might have to watch out for. First of all, while she has now reached 13 WTA finals in her career, she's only 2-10 in her first 12 - second of all, while she beat Muguruza in their only previous meeting, it was as close as it can get.
"I played against Muguruza I think two years ago and I won 7-6 in the third - I remember it was a very tough match," Zakopalova said. "I haven't really thought about the final too much yet because I have another match in doubles today, but I know it will be very tough again in the final. I want to improve my serve for tomorrow - I have to serve better. I'm also a little bit tired, but I need to be ready.
"I'm feeling very good right now so hopefully the feeling stays as long as possible."