World No 2 Murray was rewarded for an aggressive start by taking the first set but eight-time champion Nadal fought back to win 2-6 6-4 6-2 and book a place in Sunday’s final against Gael Monfils.
Monfils, the 13th seed, overcame Jo-Wilfried Tsonga 6-1 6-3 in the other, all-French, semi-final.
“I played a good match,” said Murray. “It wasn’t perfect. But apart from the one game at 3-1 in the third, I played good.
“I missed some shots. But you have to obviously take chances against the best players. If I don’t do that, you know, then you lose anyway.
“I do feel like I played a pretty good level match for the most part. Obviously there was a few dips. But that can happen. Also Rafa is allowed to play well sometimes, too. So you have to give your opponent credit.
“He’s one of the best, if not the best ever, on this surface. He played some good stuff and deserved to win.”
Nadal struggled in the first set against Murray, who started full of confidence and appeared on course for his first final at the Masters event.
Murray earned a break point in Nadal’s first service game and took the second of three break points to go 4-2 up before coming out on top in a long service game and breaking the Spaniard again to wrap up the opener.
British No 1 Murray broke back immediately after losing his serve in the first game of the second set but Nadal took control with another break in the seventh game and went on to comfortably serve out for the set.
Murray again lost his first service game in the decider and Nadal broke once more to take a firm grip on the match.
Murray rallied at 5-2 - saving four match points - but failed to convert two break points and Nadal completed a hard-fought victory.
“It’s a very important week for me,” Nadal said. “Being in a final here again in Monte Carlo, winning against very tough opponents.
“That’s a lot of great confidence, good news for me. Let’s see if I can play at the same level (on Sunday).”
Monfils will bid to become the first Frenchman to triumph in Monte Carlo since Cedric Pioline in 2000.
He maintained his fine form throughout the tournament at Roquebrune-Cap-Martin to thrash Tsonga and reach his third ATP World Tour Masters 1000 final.
Monfils dominated the first set, breaking Tsonga four times to win 6-1, and although his rival rallied in the second set, coming back from 4-1 to trail 4-3, the world number 16 broke back and served out for victory in 70 minutes.