Andreeva fechou o jogo em 2 sets a 1, com parciais de 6-7 (5/7), 6-4 e 6-4, em duas horas e 29 minutos.
Semifinalista na temporada passada, Sabalenka teve dificuldades durante a partida, reclamando frequentemente de dores de estômago, que a levaram a pedir atendimento médico duas vezes para receber medicação.
A bielorrussa começou melhor e abriu 2-0 no primeiro set, mas seu desconforto visível beneficiou Andreeva, que venceu quatro games consecutivos e obrigou a número dois do mundo a fechar a parcial só no tie break.
No segundo set, embora tenha sofrido uma quebra de saque logo no primeiro game, a tenista russa não demorou para reagir e deu o troco na sequência. O equilíbrio seguiu até Andreeva ter 5-4 de vantagem e quebrar o saque de Sabalenka para empatar o duelo.
Na parcial decisiva, Sabalenka novamente saiu na frente, mas Andreeva se manteve fria para virar mais uma vez e selar a vitória.
"Eu tinha um plano de jogo, mas esqueci quando cheguei à quadra, então fiz o que senti", declarou a jovem russa após a partida.
Aos 17 anos e 29 dias, Andreeva é a tenista mais jovem a chegar a uma semifinal de Grand Slam desde a suíça Martina Hingis no US Open de 1997.
Jasmine Paolini e Mirra Andreeva vão se enfrentar por uma vaga na final de Roland Garros nesta quinta-feira. A outra semifinal será no mesmo dia entre a polonesa Iga Swiatek, atual campeã e número 1 do mundo, e a americana Coco Gauff (3ª).
"Acho que será um jogo um pouco igual ao de hoje, terei que jogar com o mesmo estado de espírito", disse Andreeva sobre o confronto com Paolini.
Resultados desta quarta-feira da chave feminina do torneio de Roland Garros:
Jasmine Paolini (ITA) x Elena Rybakina (CAZ) 6-2, 4-6, 6-4
Mirra Andreeva (RUS) x Aryna Sabalenka (BLR) 6-7 (5/7), 6-4, 6-4