With the temperature nearing 30 degrees celsius on the hottest day of the tournament, Williams walked ever so slowly to changeovers, where even lowering herself to sit down seemed to be difficult.
During those breaks, she pressed ice towels against her forehead and neck and guzzled water. Her coach, Patrick Mouratoglou, acknowledged during a mid-match TV interview that the top-ranked Williams has been sick recently.
Trailing by a set and a break in the second, Williams won the final 10 games. One victory from her third French Open championship and 20th major title overall, Williams faces Lucie Safarova in Saturday's final.
Meanwhile, Safarova reached her first Grand Slam final at the age of 28 when she defeated former winner Ana Ivanovic 7-5, 7-5 in a mistake-ridden semi-final.
Safarova is the first Czech woman to reach the French Open final since Hana Mandlikova won the title in Paris in 1981. Prior to this year, her best showing had been a run into the last 16 in 2007 and 2014.
"It's a dream come true. I still cannot believe it," she said after converting her third match point. "I started too slowly, but I tried to pick up my level and started to play really aggressively because that was the only way to get the win."
Ivanovic, the champion at Roland Garros as a 20-year-old in 2008, had to battle hard to get into the last four, three times going the full distance.
In contrast Safarova had not dropped a set, winning five straight tie-breaks, one of those coming in the first set against defending champion Maria Sharapova in the round of 16.
But it was the Serb, watched by German World Cup winning footballer Bastian Schweinsteiger, who made the stronger start.
She raced into a 3-0 lead on the back of a service break in the second game before Safarova opened her account. On the hottest day of the tournament so far, Safarova was close to going into an early meltdown as Ivanovic staggered her with some superb line drives.
The Czech player, making just her second appearance in a Grand Slam semi-final after last year's Wimbledon, knuckled down, however, to hold her next three serves and then redeemed her earlier loss with a break in the ninth game.
It was the turn of Ivanovic to struggle as Safarova won four games in a row and then served out for the first set to zero thanks to some dismal shot-making from the Serb.
Safarova staved off break points to level at 1-1 as the second set got underway and she promptly broke the Ivanovic serve for a third time to ease ahead.
The 13th seed was dominating the match now, with Ivanovic looking more and more out of sorts, and she had break points to go 4-1 up. Ivanovic survived those, but her game was clearly off.
Safarova looked headed for a comfortable win, but inexplicably her serve collapsed at 5-4 and three double faults allowed Ivanovic to stay alive, finally converting a second break point after nine failures.
But it was only a stay of execution as Ivanovic failed to hold serve in the next game and Safarova this time made no mistake to record the biggest win of her career to date and book a place in the final.
Her record against the 19-time Grand Slam champion Serena is a depressing, for her, 0-8.