Ukrainian Elina Svitolina's dream run at the French Open ended as Belarusian second seed Aryna Sabalenka kept focus to reach the semi-finals.
Svitolina, playing in her first Grand Slam since giving birth in October, lost 6-4 6-4 on the Paris clay.
There was a tense atmosphere between two women whose nations are on opposing sides of Russia's war in Ukraine.
Sabalenka underlined why she is one of the favourites for the title and will play Karolina Muchova in the last four.
The unseeded Czech reached her first French Open semi-final with a straight-set victory over former finalist Anastasia Pavlyuchenkova.
Sabalenka comes through tense match as Svitolina booed off
Svitolina's run to the quarter-finals has been one of the eye-catching stories of this year's tournament.
A former world number three, Svitolina is now ranked 192nd as she continues her return from having daughter Skai and surpassed her wildest expectations by reaching the quarter-finals at her first Grand Slam event since.
That, along with the mental strain of the war back home in Ukraine, makes the 28-year-old's achievements at Roland Garros quite remarkable.
However, it did not stop the Paris crowd booing her for refusing to shake Sabalenka's hand at the end of the match.
Even though Svitolina beat Russian ninth seed Daria Kasatkina in the previous round, taking on Australian Open champion Sabalenka - who could become the new world number one this week - was a different proposition.
Sabalenka has won more matches than any other player on the WTA Tour this year, having complemented her aggressive ball-striking with improved fitness and stronger resolve.
The 25-year-old Belarusian has also faced personal challenges in Paris, skipping her past two post-match news conferences after saying she "did not feel safe" when previously facing questions about her stance on the war.
With the political situation between the nations of the two players providing the backdrop, there was an apprehensive atmosphere as they avoided the usual pre-match photograph.
The tension continued in a tight start to the opening set, Svitolina showing her usual doggedness to make her opponent work hard to return balls.
The first major error made by the Ukrainian came in the ninth game, whacking a wild forehand long for the first break point of the match and Sabalenka pouncing on a 70mph second serve to make the breakthrough.
Despite her great success, Sabalenka is known to wobble in key moments and a double fault at 30-30 in the 10th game brought up a first break point for Svitolina.
The Ukrainian took it when Sabalenka hit a forehand into the net, but was broken back in the next game where she produced two double faults herself.
Sabalenka's level continued to rise and was rewarded when she broke serve at the fourth attempt in a lengthy fifth game.
More nerves crept in when she tried to serve out the match, trailing 0-30 before regaining her composure and conviction of shots to reach the quarter-finals of a third successive Grand Slam.
Muchova still going after 'incredible' fortnight
Muchova won 7-5 6-2 to book only her second Grand Slam last-four appearance.
She edged a tense, hour-long opening set that featured five breaks of serve before winning the second comfortably.
Pavyluchenkova, who has dropped to 333 in the world after a serious knee injury last year, reached the final at Roland Garros in 2021, losing to Barbora Krejcikova.
Her hopes of repeating that run were ended by a fine display from Muchova, 26, who broke the Russian's serve five times.
"It's been an incredible two weeks and I'm just glad I'm still in the competition," Muchova said in her on-court interview.