Fifth-ranked Federer, who has been struggling all season, lost the first set to Haas 1-6 before finally regaining the edge in the second two sets (7-5, 6-3).
Haas, ranked 13th in the world, looked ready to upset the Basel native before succumbing in a match that took almost two hours to finish.
Federer has been looking to re-establish himself since his shock elimination from Wimbledon in the second round.
Last month he was knocked out early in the Swiss Open at Gstaad following defeat at the Hamburg Masters when he complained of back pain.
There appeared to be no sign of back pain in his match against Haas.
But the Swiss star next faces the winner between Spain’s Rafael Nadal and Bulgarian Grigor Dimitrov, with Nadal heavily favoured to win that matchup after winning in Montreal last week.
While Federer struggled to keep alive his quest for a sixth title at the Cincinnati Masters, World Number One Novak Djokovic, who has never won the tournament, took just 50 minutes to demolish Belgium's David Goffin 6-2, 6-0.