Having won the first two sets comfortably, Murray looked destined to have to finish the match on Thursday when Monfils fought back to level the match.
The Scot did not want to start the fifth set with the light fading but ended up winning it in just 24 minutes to clinch a 6-4 6-1 4-6 1-6 6-0 victory at 9.41pm.
Murray said: "It was very tough conditions. It was very windy at the start. I started well but when the wind died down he began to play so much better. He's such an amazing athlete. I was lucky that he started the fifth set badly."
The Wimbledon champion has only made the semi-finals at Roland Garros once before, losing in straight sets to eight-time champion Nadal in 2011.
"He's got very good memories on this court," said Murray. "I'll need to recover very well but I'm just happy to be in the semi-finals and I'll try to play my best tennis."
Murray was ready to be the villain for the French crowd, who have been waiting for a home men's champion since Yannick Noah's triumph in 1983.
Murray knows all about such expectations, of course, and had a smile on his face as he walked out to some jeers but plenty of cheers.
It was the Scot's first match this tournament on Court Philippe Chatrier, Roland Garros' main stage, and he could not have made a better start.
He was really looking forward to the match against his old junior rival, one of tennis' great showmen but also underachievers.
Murray was striking the ball if anything even better than he had in his fourth-round win over Fernando Verdasco, particularly on the backhand side.
He stormed into a 3-0 lead with a flurry of winners only to be pegged back by Monfils, who Murray described before the match as possibly the best athlete in tennis history.
In the seventh game Monfils even played a left-handed forehand to help him reach the ball, and made the shot.
But Murray was the one in control of most of the rallies and a combination of a backhand down the line and a forehand cross court helped him break the Monfils serve again and take the set.
Murray looked like a man completely sure of his game plan and, as in the first set, he raced out to a 3-0 lead in the second, toying with Monfils as if he was attached to a piece of string.
That quickly became 5-0 and the Scot should have chalked up a love set but fluffed three set points.
Having dominated the set, clinching it proved a little tortuous for Murray, who missed four more set points in a long service game.
There was then controversy when a ball fell out of Murray's pocket and, after Monfils protested the umpire Jake Garner's call of let with the crowd whistling and jeering, the seventh seed gave the point to his opponent.
Against Verdasco, he had also given away a point after the Spaniard was initially told to retake a first serve.
Verdasco had then broken back but this time Murray eventually clinched the set at the eighth attempt.
Monfils' performance certainly was not impressing former world number one Andy Roddick, who wrote on Twitter: "Nothing p****s me off more when watching someone giving a horrible effort. Showboats when winning and rolls over when down £hatethat"
But the match was about to change.
The momentum shift began in the first game of the third set, when Monfils saved three break points.
Murray did the same in the next game but it was a tight set, both men holding their serves, and when Monfils made it 5-4, he whipped the crowd up.
Both men knew this was a big moment and, although Murray saved two set points, he could not save a third.
The Scot now seemed to be struggling physically and Monfils dominated the fourth set to level the match.
Murray wanted to stop there, telling tournament referee Stefan Fransson "that's ridiculous" when it was put to him that he had to carry on.
Having held the opening game, Murray let out a yell of 'Come on', but the Scot surely would not have expected what followed, with Monfils winning just seven points in the final set.