The 27-year-old, seventh seed once again did it the hard way, battling back from a set down to edge the 20-year-old from Montreal 4-6, 7-5, 6-2 in a match full of beefy baseline shot-making.
It was the 19th time in a row that the never-say-die Sharapova had won a three-set match on clay, dating back to a loss against Justine Henin at Roland Garros in 2010.
On Saturday she will take on the winner of the other semi-final opposing fourth seed Simona Halep of Romania and Andrea Petkovic of Germany.
"She played an unbelievable match. Her level was extremely high today and I am just fortunate to be the winner," Sharapova said.
Also Read
"I would prefer to win in two sets, but she started so well. It was tough losing the first set, but that's not when the match is over."
Both players had been guilty of slow starts earlier in the tournament, but the quality from both was high from the start as the sunshine returned to light up the centre court.
Bouchard, the WTA Newcomer of the Year in 2013, then produced an inspired game to stun her girlhood idol Sharapova, breaking serve and then holding to take the first set 6-4 in 44 minutes.
But Sharapova is seldom as dangerous as when she is behind, especially on clay, as shown in her two previous matches when she dropped the opening set to Samantha Stosur and then Garbine Muguruza.
Seeking a fifth Grand Slam title, having completed a career Grand Slam sweep in Paris two years ago, Sharapova jumped out into a 4-1 and then 5-2 lead in the second set.
Sharapova was in big trouble, but once again she found a way of digging her way out of it, holding serve and then levelling the score by bagging her sixth set point in the following game.
Once again, Sharapova's drive and determination allowed her to dominate the deciding set with Bouchard struggling to stay with the Russian superstar now in overdrive.
Sharapova grabbed a vital break in the third game to lead 4-1 and raced away with the tie as Bouchard wilted, although the Russian still needed five match points to get the job done.