Canada withstood intense late pressure from hosts France to record a 18-16 win and set up a Women's Rugby World Cup final clash against England.
France twice went over late from rolling mauls from line-outs but they paid the price when Sandrine Agricole failed to convert the tries at Stade Jean Bouin in Paris.
Canada wing Magali Harvey scored the try of the match when she ran 80m from a scrum in her own half.
Earlier, England defeated Ireland 40-7.
Canada have finished fourth in the World Cup three times but never before reached the final.
"We're elated. Right now we're going to enjoy the moment," said Canada captain Kelly Russell.
"But we can execute a little better and fine tune a few things."