The Kazakh player battled with Czech Republic's Karolina Muchova for two hours and 48 minutes before winning the match with the scores 7:6 (7:4), 2:6, 6:4.
Rybakina had six aces and six double faults, while Muchova served one ace and made six double faults.
In the semifinals, Rybakina will go against world no.1 player and the reigning champion of the tournament Iga Świątek. The match will take place on March 18.
The two had faced each other earlier this year at the Australian Open where the Kazakh player claimed victory.