The Briton, who has not won since the 2018 Tour de France, fell on a slippery road with the finish line in sight in a two-man sprint with Canadian Michael Woods.
Ineos-Grenadiers rider Thomas eventually crossed the line in third place, 21 seconds behind Woods after also being overtaken by Australian Ben O'Connor.
"I had no feeling whatsoever in my hand, I tried to change gear but instead I just lost the bars," Thomas told CyclingPro.
"It's just so frustrating because even if I had just stayed in that gear and came second place, but to deck it there, I feel like a right whopper."
Thomas is second overall, 11 seconds behind Woods ahead of Sunday's final stage, a 16km individual time trial around Fribourg, in which he is expected to do better than the Canadian.
"I’m fine, it’s more about the frustration of such a hard day and to lose time like that at the end, it’s really frustrating," Thomas said.
"I just want to get into a hot shower now. I just need to have a shower and settle down and not be so emotional... and then think about tomorrow."