Paris - Simona Halep vowed to erase the misery of her 2017 Roland Garros heartbreak after reaching her third French Open final on Thursday where she will face US Open winner Sloane Stephens for the title.
Halep, the runner-up in 2014 and 2017, enjoyed a 6-1, 6-4 victory over 2016 champion and third seed Garbine Muguruza of Spain.
Stephens, who won her maiden Slam title in New York last year, defeated fellow American and close friend Madison Keys 6-4, 6-4 having previously never got beyond the quarter-finals in Paris.
"I am really happy that I won the match, it was very important for my mind and I gave it all I had," said Romanian star Halep.
After racing through the first set, Halep saved three break points in a marathon ninth game of the second which lasted 13 minutes.
"I think I played one of my best matches on clay against a great opponent," added Halep, who will be appearing in her fourth final at the majors having also been beaten in Australia in January.
"I was 2-4 down in the second set but I knew I had to fight for every ball, push her back and play the way I did in the first set."
Halep has now defeated Muguruza in both their meetings on clay and will also retain the world No 1 ranking next week.
However, her sights now turn to the final where she is desperate to erase the memories of last year's horror show where she surrendered a set and a 3-0 lead to lose to Jelena Ostapenko.
"I have another chance to be in the final and hope to do better than last year."
She boasts a 5-2 career lead over Stephens including both their meetings on clay.
The American's last win over the 26-year-old Halep was five years ago.
Halep raced into a 5-0 lead in the first set against misfiring 2016 champion Muguruza who had blasted Maria Sharapova off court on Wednesday for the loss of just three games.
The 24-year-old Spaniard stopped the rot in the sixth game before Halep quickly reasserted her authority.
A sweeping, running forehand into an open court gave her the set with Muguruza having managed just two winners.
It was the first set that the Wimbledon champion had dropped at Roland Garros this year.
She also failed to win a single service game in the opener.
Muguruza settled down in the second set, moving 2-0 ahead before Halep levelled in the eighth game.
That set the stage for the lengthy ninth game where Halep stood firm.
The spirit ebbed away from Muguruza, who converted just two of the eight break points she carved out, and a backhand which sailed long sealed her fate in the 10th game.
"It's Simona's third final in Roland Garros, she has a great level. She's the favourite," said Muguruza.
Stephens defeated Keys in straight sets when she won the US Open last September.
On Thursday, it was more of the same as the 25-year-old capitalised on her friend's big match nerves.
"It's really hard to play against a great friend, but I am pleased to be in the final for the first time," said Stephens who will rise to four in the world thanks to her deepest run in the French capital.
"This is one of my favourite tournaments. It's another great opportunity and I am looking forward to it."
In the first all-American women's semi-final in Paris since 2002, the 10th seeded Stephens broke in the third game of the opening set.
That was sufficient in a set where 13th seeded Keys committed 23 unforced errors.
Stephens, who had been just two points from being knocked out by Camila Giorgi in the third round, was quickly 2-0 ahead in the second.
She went to 5-2 on a double break and although Keys rallied, the statistics made brutal reading.
She finished with 41 unforced errors with Stephens only needing to fire nine winners to get her home.
Results from day 12 of the French Open at Roland Garros on Thursday (x denotes seeding):
Simona Halep (ROM x1) bt Garbine Muguruza (ESP x3) 6-1, 6-4
Sloane Stephens (USA x10) bt Madison Keys (USA x13) 6-4, 6-4
Rafael Nadal (ESP x1) bt Diego Schwartzman (ARG x11) 4-6, 6-3, 6-2, 6-2
Juan Martin Del Potro (ARG x5) bt Marin Cilic (CRO x3) 7-6 (7/5), 5-7, 6-3, 7-5
Latisha Chan/Ivan Dodig (TAI/CRO x2) bt Gabriela Dabrowski/Mate Pavic (CAN/CRO x1) 6-1, 6-7 (5/7), 10-8