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.
Newt Gingrich fires back at Mandela backlash
N.J. man wakes up from 10-hour sleep with knife in back