Aryna Sabalenka will face Iga Swiatek in the Madrid Open final for the second year running after beating Elena Rybakina 1-6 7-5 7-6 (7-5) in a semi-final classic on Thursday.

Fourth seed Rybakina made a flying start and took the opener within just 25 minutes, but Sabalenka hit back in a topsy-turvy second set featuring five breaks of serve to force a decider.

Both players were imperious on their own serve from there, with a tie-break required to split them. Sabalenka's power looked likely to overwhelm Rybakina as she raced into a 5-1 lead, but the former Wimbledon champion clung on by saving two match points on her own serve.

Sabalenka would not be denied third time around, though, a huge serve giving Rybakina no chance as the defending champion teed up a rematch with Swiatek, who she beat in the Spanish capital in last year's showpiece match.

Data Debrief: Sabalenka's unwanted record

Sabalenka has dropped 60 games at this year's Madrid Open. That makes her the player with the most games dropped en route to reaching the final since the tournament's inception in 2009.

The world number two had to dig deep in a match which saw Rybakina win more total points (99 to 95), but she will not mind one bit if she goes on to capture a third Madrid Open title on Saturday.