Jelena Ostapenko continued her remarkable French Open run to reach a maiden grand slam final with a battling victory over Timea Bacsinszky on Court Philippe Chatrier.
The world number 47 celebrated her birthday – and ruined her opponent's – with a 7-6 (7-4) 3-6 6-3 success on Thursday, setting up a meeting with either Simona Halep or Karolina Pliskova.
Ostapenko, who has never won a WTA Tour title, forged ahead in a first set that lasted over an hour, including a tie-break in which just four of the 11 points went with the serve.
Only Venus Williams had taken a set off Bacsinszky at the tournament prior to that and she hit back with a clinical second-set showing in which she made just four unforced errors.
But Ostapenko had the final say as the 20-year-old became the first unseeded player to reach the Roland Garros final since 1983, wrapping up the win in just shy of two and a half hours in a match that featured 16 breaks of serve and saw the victor claim only one extra point across the whole contest.
In the maiden meeting between the pair, Bacsinszky broke with her first opportunity as a barrage of deep returns forced Ostapenko onto the back foot, with a deft drop shot catching her off guard.
But Ostapenko immediately got back on serve as Bacsinszky – also a semi-finalist in 2015 – started to leave a few forehands short and was duly punished.
Bacsinszky required treatment on her right knee after dropping serve to trail 4-3, but it did not hinder the 30th seed as once again there was a swift break back, Ostapenko the architect of her own downfall with three unforced errors and a double fault.
There was a roar of delight from Ostapenko when she produced a gritty hold to make it 5-5 and she used that energy to go 30-0 up when returning in the next game, before dumping a simple volley into the net.
The Latvian continued to apply the pressure and, despite Bacsinszky conjuring a pinpoint lob to stave off one break point, Ostapenko cracked a forehand winner to leave her serving for the set.
A scruffy game followed from Ostapenko as a huge opportunity appeared to go begging, though she made amends in the tie-break.
Despite a costly error-strewn opening service game in the second set, Ostapenko promptly redressed the balance and then emphatically held to love.
The pivotal moment of the set arrived when Ostapenko tamely hit a backhand into the net to lose serve in game seven, with the 28-year-old Bacsinszky going on to level the match courtesy of a double break.
Three consecutive breaks at the start of the deciding set continued the topsy-turvy nature of the contest and left Ostapenko 3-1 ahead when she finally held.
That was an advantage that she soon surrendered and then just as quickly seized back, before going on to wrap up a dramatic win, fittingly with a final break of serve to become the first Latvian to reach a grand slam final.