Haas posted a 7-6 (7-5), 6-4 decision over Federer for his 13th career ATP championship and first since beating Novak Djokovic in the final in winning the Gerry Weber in 2009.
Haas entered the match 2-10 lifetime versus Federer, who had won their last 11 meetings. The last time Haas beat Federer was at the Australia Open in January 2002 when he took the fifth set 8-6.
Federer opened Sunday's match with a break but didn't post another. Haas tied the first set at 3-3 and won four consecutive points early in the tiebreaker behind holding serve for the set win.
Haas got in position to win by breaking Federer in a lengthy game that ended with a backhand winner for a 5-4 lead and Haas, who won 70 percent of the points on serve, held the next game to end the match.
Federer is 73-31 in championship matches and he saw a seven-match winning streak in finals end with Sunday's loss. He was looking for his sixth Gerry Weber title since 2003.