Stephens, who missed 11 months with a left foot injury before returning in July, outlasted seven-time Slam champion Venus Williams 6-1, 0-6, 7-5.
"I'm super happy to be in a Grand Slam final," Stephens said. "To do it here, my home slam, is obviously more special. I think this is what every player dreams about."
US 15th seed Keys, who had left wrist surgery for the second time in 10 months after a first-round French Open exit, routed US 20th seed CoCo Vandeweghe 6-1, 6-2 in 66 minutes to complete the first all-American US Open final since Serena Williams beat sister Venus in 2002.
"It still doesn't feel real. I'm still shaking," Keys said. "I played pretty well. There's a lot of things in my head right now so I'm struggling to come up with words.
"I knew I had to rise to the occasion. I'm just happy to be in the final."
The friends and Fed Cup teammates will meet Saturday at Arthur Ashe Stadium in the biggest match of either's career for a top prize of $3.7 million (3.07 million euros).
"I've known her for a long time. She's one of my closest friends on tour," Stephens said. "I love her to death. And it's not easy playing a friend."
Stephens, who was wearing a walking boot in June and ranked 957th in July, has won 14 of her past 16 matches, with semi-final runs at Toronto and Cincinnati.
"I have no words to describe what I'm feeling, what it took to get here, the journey I've been on," Stephens said.
"It's incredible. I don't know how I got here. Your guess is as good as mine. Just hard work. That's it."
Stephens beat Keys in the second round at Miami in 2015 in their only career meeting.
"Sloane is a new person right now," Keys said. "She's so excited to be out on the court again. I'm excited we get to play each other in the US Open final."
Stephens needed a thrilling break at love in the penultimate game and closing hold of serve to deny two-time champion Williams her first US Open final in 15 years.
"I just worked my tail off and tried to run every ball down and here we are," Stephens said. "It required a lot of fight and a lot of grit."
Now 83rd, Stephens is the lowest-ranked Slam finalist since unranked Justine Henin at the 2010 Australian Open and the lowest at the US Open since unranked Kim Clijsters won the 2009 title.
Stephens, who beat Williams in the first round of the 2015 French Open in their only prior meeting, will jump into the world top 25 next week with the victory.
US ninth seed Williams could not overcome 51 unforced errors that doomed her bid to become the oldest women's singles finalist in US Open history at age 37.
"It was definitely well competed," Williams said. "In the end she won more points than I did and that's what it added up to.
"Just made so many errors at the end there... I wasn't playing well. Just wasn't playing well."
Williams will return to the top five in Monday's world rankings for the first time since 2011, the year she was diagnosed with strength-sapping Sjogren's Syndrome.