Swiatek's three in a row Stuttgart bid ended by Rybakina after thriller, Kostyuk into final
Fourth seed Rybakina ended Swiatek's perfect record in Stuttgart by handing the Pole her first defeat in 11 matches at the tournament.
"It was, like always a very tough match and I was fighting for every ball, it was such a close match," Rybakina said.
"I'm really happy that I managed to win and I showed a good game."
Swiatek began brightly, breaking serve in the opening game and held to take a 2-0 lead, but 2022 Wimbledon champion Rybakina then won five games in a row, breaking twice, and saw out the first set as she hit four aces along the way.
The second set went with serve for the first nine games, with Swiatek saving two break points in the opener and Rybakina hitting a further four aces before Swiatek made the decisive break to take the set and force the decider.
Rybakina threatened early in the third set, with Swiatek saving five break points to hold for a 2-1 lead but Rybakina made the breakthrough to make it 3-2 and hit another ace to save a break point and hold in the next game.
At 4-2 down, Swiatek rallied to serve to love and had a break point to level the set, but Rybakina held on and went on to break again to reach the final where she will meet Marta Kostyuk (21).
"It was kind of a battle who starts the rally, who starts to dominate, but it's always tough to break against Iga, we push each other and I'm really happy that today I managed to win," Rybakina said.
Unseeded Kostyuk overcame Czech sixth seed Marketa Vondrousova (24) 7-6(2), 6-2. The Ukrainian raced into a 5-1 lead in the first set but Vondrousova fought back to force a tie-break.
Kostyuk regained her composure to dominate the tiebreak and when she again took a 5-1 lead in the second set, this time there was no way back for last year's Wimbledon champion Vondrousova.
Rybakina will be contesting her fifth final of the year, having won the Brisbane International and the Abu Dhabi Open. She was runner-up at the Miami and Qatar Opens.
Kostyuk, who lost to Swiatek at the semi-final stage of Indian Wells, reached the final of the San Diego Open in March.
The winner of Sunday's final will receive a Porsche car, along with the prize money, but for Rybakina this may create a problem.
"I still don't have a driver's licence so that's going to be the goal," she joked after beating Swiatek.