Serena Williams overcame apparent illness and a valiant performance from Timea Bacsinszky to reach the French Open final with a 10-game winning streak to seal a come-from-behind triumph.
World number one Williams has looked off-colour for much of her campaign at Roland Garros, requiring three sets to win her second, third and fourth-round matches.
The top seed was again taken the distance by Bacsinszky on Thursday and, despite evidently being under the weather, eventually had too much for the plucky Swiss, winning through 4-6 6-3 6-0.
Williams will now go for a third French Open title, and 20th grand slam overall, against Lucie Safarova in Saturday's final.
Bacsinszky showed no sign of nerves in her maiden slam semi-final, making a confident start before securing a well-deserved break in the fifth game of the first set with a fine backhand winner.
Despite Williams' obvious struggles, the underdog was in excellent form and was clearly happy to go toe-to-toe from the baseline with the world number one.
However, Williams' survival instinct then kicked in, as she broke straight back, before holding and breaking once again.
Another hold followed, the two-time Roland Garros champion drawing level by converting her third set point.
The decider was little more than a procession, with Williams, still far from her best, coasted from there as world number 24 Bacsinszky - who left the court in tears - wilted under the pressure and the victor advanced to her 24th slam final.
In the other semi-final, Lucie Safarova produced a stunning performance to reach her maiden grand slam final at the expense of Ana Ivanovic.
The Czech quickly put a shaky start behind her at Roland Garros to come storming back into the match, while errors blighted Ivanovic's attempts to stay in the contest.
Safarova secured her place in Saturday's showpiece thanks to another stunning forehand, the shot giving her a 7-5 7-5 win and extending Ivanovic's long wait for a fourth grand slam final.