The Serbian 18th seed raced to the first set without dropping a game but Sharapova regrouped and fought back to eventually wrap up a 0-6 6-4 6-3 win on Court Philippe Chatrier.
Sharapova, who will face Victoria Azarenka for a place in the final, said she had no choice but to forget about the one-sided first set and move on.
“After the first set I knew if I wanted to win this match I’d have to change things around,” said Sharapova.
“I just had to erase that chapter and move forward because the match was not over. I still felt like I was in the match and I was – I broke her in the first game and that was extremely important.
“I just fought really hard in the third set. It only gets tougher from here but I’m really happy to be at this stage again.”
Sharapova will play third seed Azarenka in the last four after she became the first woman representing Belarus to reach the semi-finals in Paris.
The two-time Australian Open sealed a 7-6 (7-3) 6-2 win over Russian 12th seed Maria Kirilenko on Court Suzanne Lenglen.
“The first set definitely made a difference,” said Azarenka afterwards. “One or two points really decided the first set, especially the beginning of the tie-break.
“The way I started was really dominant. That’s how I was supposed to play the entire match.”
MORE: The latest football news
MORE: The latest tennis news
BIOGRAPHY: Ethan Hazard
BIOGRAPHY: Daniel Sturridge