Iga Swiatek had to come from a set down to book her place in the Stuttgart Open final with a hard-earned victory over Liudmila Samsonova.

The world number one produced a 22nd consecutive victory as she scraped a 6-7 (4-7) 6-4 7-5 win in a contest that lasted more than three hours.

The Pole will face third seed Aryna Sabalenka in Sunday's final on the German clay.

Swiatek broke early to race out to a 3-0 lead, but was pegged back by her Russian opponent, who fought hard to claim the first set on a tie-break.

The 20-year-old was looking to break the record of Serena Williams, equalling a feat of winning 28 sets in a row, but Samsonova prevented her from doing so.

It was the first time Swiatek had dropped a set since her Indian Wells Open last 16 match against Angelique Kerber in March, but she soon got back into her rhythm and clinched the second set 6-4.

She broke early again in the decider, but was once more broken back by a determined Samsonova, and Swiatek showed frustration with herself as she struggled to put away her opponent.

However, an unusually sloppy service game from Samsonova gave Swiatek another break in the 11th game of the set, which she closed out to seal her place in the final.

The other semi-final in Stuttgart saw Sabalenka overcome second seed Paula Badosa 7-6 (7-5) 6-4.

There were 14 double faults (seven each) in the match, but it was Sabalenka's big serve that ultimately led her to victory, hitting nine aces and winning 76.9 per cent of points on her first serve.

The Belarusian also saved six of eight break points faced as she ultimately eased past her Spanish opponent.

At the Istanbul Cup, third seed Veronika Kudermetova will play Anastasia Potapova in the final after seeing off second seed Sorana Cirstea in straight sets, 6-3 6-3.

Potapova had earlier come from a set down to beat Yulia Putintseva 2-6 6-2 6-2 in the other semi-final.