The seventh-seeded Russian again lost the first set Thursday, but again managed to turn things around, beating Eugenie Bouchard of Canada 4-6, 7-5, 6-2.
Sharapova will face fourth-seeded Simona Halep of Romania in Saturday's championship match. Halep reached her first Grand Slam final by defeating 28th-seeded Andrea Petkovic of Germany 6-2, 7-6 (4).
Sharapova won eight of the last 10 games against Bouchard, and has won 19 straight three-set matches on clay - the last three at Roland Garros after losing the first set.
''I would love to win those matches in two sets, but I always feel like I put in the work to be ready to play whatever it takes,'' Sharapova said. ''If it takes three hours to win the match in three sets, I will be ready for that.''
Sharapova completed a career Grand Slam by winning the French Open in 2012, but lost to Serena Williams in last year's final.
Bouchard, a 20-year-old Canadian seeded 18th, was playing at Roland Garros for the only second time. Last year, she lost to Sharapova in the second round.
Sharapova struggled a bit with her serve, double-faulting nine times and getting broken four times. But she made up for her shaky serving with solid groundstrokes, either going for winners or waiting out errors from Bouchard.
''I don't feel that I played my best tennis, but to be in the semifinals of a Grand Slam and winning a match where I felt my opponent played extremely well, exceptional tennis, and I didn't feel that I was playing my best, I fought, I scrambled, and I found a way to win,'' Sharapova said.
In the second semifinal, Halep played aggressive tennis in the first set. She finished the set with 12 winners and seven unforced errors, while Petkovic had only three winners and 14 unforced errors.
The second set was much closer as Petkovic played with more consistency, but the 22-year-old Romanian was able to close it out in the tiebreaker with a forehand winner.
Both Halep and Petkovic were playing in a major semifinal for the first time. Bouchard, however, also reached this stage at the Australian Open in January.
On Thursday, she took the early lead against Sharapova with her first break in the third game, smacking a forehand winner for a 2-1 edge. She made it 3-1 by completing a run of winning 12 of 17 points.
The pair traded breaks early in the second set, and then again later. But Sharapova managed to stay ahead and broke Bouchard for the third time in the set to even the set score.
Sharapova served first in the third set, and made her move in the fourth game, converting her third break point to take a 3-1 lead that she held to the end.
Bouchard saved four match points before Sharapova won it with a forehand that the Canadian missed on the other end.
''It's always disappointing to be a little bit off,'' Bouchard said. ''I felt like I was trying to do what I wanted to do, which was be aggressive, go for my shots. But often I constructed the point well and then didn't finish it as well as I could.''
Sharapova won her first Grand Slam title 10 years ago at Wimbledon. She followed that with major titles at the U.S. Open in 2006 and the Australian Open in 2008. But since she recovered from having right shoulder surgery in 2008, she has vastly improved her clay-court game and has won six of her last eight titles on the red surface.
This year, Sharapova has already won on clay in Stuttgart and Rome, and her six wins so far at Roland Garros give her an 18-1 record on dirt this season.
And like against Bouchard, it's been tough to beat her in three sets on the surface. The last time Sharapova lost a three-set match on clay was at Roland Garros in 2010, to Justine Henin in the third round.