The 7-5, 7-6 victory was the sixth in Halard's career but the Frenchwoman, ranked 32nd in the world, struggled before wrapping up the match in one hour and 44 minutes of a tense final in which both players lost their tempers.
Majoli, the world No 4 from Croatia, had a perfect start, leading 5-1 in the first set before a contentious line call ruined her concentration.
Halard, unseeded, took the next seven games and looked set for an easy victory when she, in turn, led 5-1 in the second set.
But Halard, who needed 11 match points to defeat the second seed, Anke Huber of Germany, in the previous round, then also faltered, allowing Majoli to level at 5-5.
Halard recovered some of her calm in the tie-break and quickly led 4- 1. She held the edge until a powerful forehand return gave her victory on her second match point.
''It is certainly the most beautiful victory in my career,'' Halard said. "After all the tough matches I had since the start of the week, I'm glad I went all the way. I'm happy to have won in France in front of my home crowd. I had never beaten two top 10 players in a row before."Reuse content