The unseeded Fish was able to regroup during a third rain delay and upset the former world number one in the semi-final match.
Roddick led 5-2 in the second set when the players briefly went to the locker room. Fish was in top form when they returned.
"I was just lucky to get out of it," Fish said.
In Sunday's final, Fish will play Swiss superstar Roger Federer who easily beat unseeded Marcos Baghdatis 6-4, 6-3.
"It wasn't long at all," Fish said of the break. "It was only a couple minutes that we were back there, so I just changed (clothes). It was only a couple of minutes."
The beginning of the match was delayed 50 minutes by heavy rain. Another cloudburst during the first set resulted in a one-hour delay. Roddick was up 5-4 coming out of the delay. Fish dumped three forehands into the net while Roddick captured the set.
Roddick built a 5-2 lead in the second set when another shower forced a brief break.
"The first one really helped, the second one obviously didn't," Roddick said. "That's the thing with rain delays. The momentum can shift really fast."
Fish knew he was in deep trouble when he came back on the court.
"You don't want to be in that spot at all," Fish said.
This time, Fish was better when they returned to the hardcourt stadium. He broke Roddick's serve for the first time in the match to keep it going, then won the tiebreaker when Roddick began missing easy shots.
Roddick fell behind 3-0 in the third set, becoming so upset that he took extra swings at balls between points and slammed his racket into the ground.
Roddick downplayed his on court antics in the US Open tune-up event.
"I feel OK," Roddick said. "You know, to be honest, I came here and I had no expectations. For me to get in five really tough matches is more than I could've asked for going into the Open. Honestly, when I came here I was thinking maybe two matches and we'll see. I hadn't really put too much time in."
Federer broke Baghdatis to close out the first set and never faced a break point.
Federer, who is seeking his fourth Cincinnati title, also broke Baghdatis to take a 5-3 lead in the second set.
"I got kind of lucky in this tournament," Federer said. "I hardly had to play the first two matches. Things are working out for me here."
And it just keeps getting better because now Federer goes against unseeded Fish who Federer has a commanding 5-1 career record against.