The Swiss maestro claimed a third consecutive win as he warmed up for a potential semi-final against either world number one Novak Djokovic, Tomas Berdych or David Ferrer.
Tournament debutant Fish bowed out on Thanksgiving Day with a spirited performance despite having no chance of reaching the semi-finals, having lost both his previous matches to Rafa Nadal and Jo-Wilfried Tsonga.
They face eachother later on Thursday with the winner advancing along with Group B winner Federer.
Fans with expensive tickets must have feared the worst when Federer cruised through the first set in half and hour but they were given value for money as Fish made a match of it.
Federer never came anywhere near the heights he achieved in his sensational demolition of Nadal on Tuesday and he was outplayed by Fish in the second set as the 29-year-old American let rip with some flashing winners.
However, the 16-times grand slam champion, bidding for a record sixth title at the season-ender, resumed normal service, breaking Fish at the start of the third set before moving on to complete victory in one hour 47 minutes.