The No.4-seeded Petkovic trailed 3-1 in both sets but clawed her way back each time, and eventually made it past the No.2-seeded Cibulkova after an hour and 43 minutes of fierce hitting, 7-5, 6-3.
"I thought I was playing really, really well today, and I thought Domi was playing really well too, especially in the first set," Petkovic said. "I'm very happy with my performance out there today."
With the win Petkovic is guaranteed to be one of the two players moving into the semifinals from Group Sredets. The last remaining round robin match from the group, which will take place on Friday and sees Carla Suárez Navarro take on Tsvetana Pironkova, will determine the other player who advances. If Suárez Navarro wins in straight sets, she's in - anything else happens and Cibulkova's in.
Earlier, Garbiñe Muguruza and Alizé Cornet won round robin matches in Group Serdika, beginning with No.7-seeded Muguruza coming out on the good side of a bizarre 0-6, 6-1, 6-1 win over No.3-seeded Flavia Pennetta, rallying from a first set blowout to return the favor across the next two sets.
"I went to the court really nervous - in a round robin every match is so important," Muguruza said. "I was doing the wrong things against her in the first set, but I'm glad I could turn it around in the end."
The No.6-seeded Cornet had a simpler win in the next match over No.1-seeded Ekaterina Makarova, 6-1, 6-4, but afterwards Makarova was forced to pull out of the tournament because of a back injury.
"Unfortunately I have to withdraw with a back injury that happened in Singapore," Makarova said.
"I tried my best these first few matches but the third one would have been really tough since the injury has been getting worse. This is a really great tournament, though, and I am really happy I was able to qualify - I tried my best, but it's not possible for me to play at my highest level right now."
The last two round robin matches from Group Serdika will take the court on Friday, with Cornet facing Muguruza and Pennetta facing WTA Rising Star Karolina Pliskova, who is stepping in for Makarova.
Muguruza currently leads the group, 2-0, with Pennetta and Cornet just behind at 1-1, but any two of those three could finish Top 2 in the group and make the semifinals. In the event of a three-way tie at 2-1, it would come down to sets won and, if that's even, it would come down to games won.