Both players struggled to hit high percentages on their first serve in a tight first set and as a result, both suffered breaks of serve in the opener.
However, it was Federer who managed to break once more as he took full advantage of some sloppy mistakes from Haas to take the lead.
An improved display from each player in the second set saw the crowd treated to some better tennis, with Federer edging closer to top form as he clicked through the gears.
Haas managed to save three break points in the set but he was unable to prevent his opponent from once again stealing control.
Federer held his nerve after edging ahead in the second set and the seventh seed served out the match to set up a game against Kevin Anderson.