Shelton pulled out a 4-6 6-3 6-3 7-5 victory and will play top seed Alexander Zverev on Sunday (Monday AEST) for the US Open title.
The No.8-seeded Shelton had plenty of energy left after ousting defending champion Carlos Alcaraz in a quarter-final match that ended at 3.33am on Wednesday, the latest finish ever at the US Open.
Now he needs to stop French Open champion Zverev to give the host nation their first men's major winner in New York since Andy Roddick in 2003.
"I'm going for it here and I'm going to leave it all on the court," Shelton said.
"I hope you guys come and back me. Let's do it for the USA."
Earlier on Friday (Saturday AEST), Zverev beat Karen Khachanov 6-3 7-6 (9-7) 7-6 (8-6) in the first semi.
"Hopefully I can not make the American dream come true on Sunday," Zverev said.
Shelton and Tiafoe treated the star-studded crowd at Flushing Meadows to a good show, after both had to come through match tiebreakers in the previous round. Shelton, a 23-year-old who was less than a year old when Roddick won his title, advanced to his first major final.
"This is both of our favourite tournament in the world, our favourite court in the world and to be able to light it up in front of (this crowd) is the best feeling that there is," Shelton said.
Tiafoe fell to 0-3 in the US Open semis, the last two against fellow Americans. Taylor Fritz beat him in 2024 before losing to Jannik Sinner.
Locked at a set apiece, the pivotal moment in the match came in the final game of the third set, when Tiafoe was desperately trying to hold serve. The game lasted 15 minutes and 20 points before he put a forehand into the net to end it and move Shelton a set away from the decider.
Zverev, who had long been considered the best men's player without a major, finally broke through in Paris this year. The German then reached the Wimbledon final, where he lost to Sinner, and is 24-2 in grand glam matches this season.
"Sometimes just things go your way and I feel like I've had a lot of struggles at the major level, I was so close so many times, and maybe this year God has said that this is going to be your year and just enjoy the time on the court," Zverev said.
Now he will try to win the title that he still can't believe he let get away in 2020. Zverev won the first two sets against Dominic Thiem but then lost in a fifth-set tiebreaker, as the Austrian became the first man to win the US Open title since 1949 after dropping the first two sets.
Zverev was solid after going up two sets this time, and has won 13 consecutive sets after becoming the first No.1-seeded man to play five-setters in each of the first two rounds of a major.
Khachanov was trying to reach his first major final at the third time of asking.