The world number five showed real staying power to win 6-7(4), 7-6(14,) 7-6(6), having been forced to an earlier finish off his quarter-final against Sho Shimabukuro.
"Sometimes tennis doesn’t go to plan," Shelton said after his third three-set win of the week at the ATP grasscourt event. "I lost the first set in every single match I played.
"But there are a lot of ways to win a match. I've been choosing the most difficult route."
Shelton saved his match points in a marathon second-set tiebreak on his way to a two-hour-52-minute victory.
"I'm very tired but excited to be playing him in another final," said Shelton, who is seeking a third title of the season.
Reigning champion Fritz had things easier as he beat the unpredictable Alexander Bublik 6-4, 6-4, banging down 13 aces.
At the Libema Open in Hertogenbosch, Australia's Alex de Minaur beat Frenchman Adrian Mannarino 6-4, 6-0 to set up a final against Kamil Majchrzak, who beat Daniil Medvedev.
Poland's Majchrzak won 7-6(4) 6-1 to reach his first ATP Tour singles final.
Check out the full match statistics on Flashscore

