Top-ranked Nadal's 19-match winning streak at Grand Slams also came to an end in the semifinals.
The sixth-seeded Murray won the first two sets and was down a break at 3-2 in the third when play was suspended on Saturday because of Tropical Storm Hanna.
"Tough to sleep," Murray said.
And as should surprise no one, the generally indefatigable Nadal made a stand on Sunday, taking the third set and going ahead 3-1 in the fourth. But Murray took five of the last six games, breaking Nadal twice and ending the Spaniard's bid to make his first final at the U.S. Open.
Murray never before made it past the quarterfinals at a major and never had defeated Nadal in five previous tries. Nadal, meanwhile, had won 54 of his preceding 56 matches and took the titles at the French Open, Wimbledon and Beijing Olympics this year.
But Murray was up to the task this time.
He won a 22-stroke point with a volley winner to get to match point, leaving Nadal bending over behind the baseline, chest heaving. Then Murray completed the service break to end the match, easily running to get to a drop shot and smacking a winner.
Trying to become the first British man to win a major tennis championship since Fred Perry at the 1936 U.S. Open, Murray now faces four-time defending champion Roger Federer in Monday's final. Federer beat Novak Djokovic in four sets in a semifinal that was completed before the rain arrived on Saturday.
Federer will be attempting to win his 13th Grand Slam title, Murray his first.
But get this: Murray owns a 2-1 career mark against Federer.
"He's probably the greatest player ever, so to get the chance to play against him in a Slam final is an honor," Murray said. "But I've played well against him in the past and hopefully ... I'll do that again tomorrow."