Champion Sabalenka sets up Swiatek rematch in Madrid Open final
The Belarusian second seed triumphed 1-6, 7-5, 7-6 (7/5) and will face world number one Iga Swiatek on Saturday in a rematch of last year's final.
The clinical Swiatek earlier eased past American Madison Keys with a comfortable 6-1, 6-3 victory.
In the men's draw third seed Daniil Medvedev retired injured from his quarter-final clash with Jiri Lehecka.
Kazakh Rybakina dominated a below-par Sabalenka in the first set with two breaks, but faced far stiffer resistance in the second after going a break up in the third game.
Two-time Australian Open champion Sabalenka put heavy pressure on the fourth seed's serve and eventually cracked it to pull level at 4-4.
Rybakina hit back instantly but seemed rattled when serving for the match and world number two Sabalenka broke again for 5-5 and then claimed the next two games to force a deciding third set.
The players exchanged holds with just one break point reached -- Sabalenka staying firm for a 6-5 advantage -- before the tie-break.
Sabalenka, 25, sealed her victory with a typically powerful serve that Rybakina could not control.
The big-hitter had lost three of her last four clashes against the 24-year-old but emerged triumphant as they met on clay for the first time.