The top-ranked Federer, who dropped sets in earlier rounds against Kristian Pless and Novak Djokovic, never lost serve in defeating the fifth-seeded German.
It was the Swiss star's 40th straight victory. He is six wins away from Guillermo Vilas' all-time record of 46 consecutive wins, set in 1977.
Federer will next face unseeded Mikhail Youzhny, who reached his second straight tournament final by beating Sweden's Robin Soderling 7-5, 6-2.
Haas, who won last week's ATP tournament in Memphis without facing a break point, had an early chance to break Federer in the second game of the first set. He later had three break points in the fourth game of the second set.
But Federer played efficient if not spectacular tennis to hold off the challenge. He broke Haas in the third game of the first set and 11th game of the second.
"It was extremely physical out there tonight," Federer said. "Lots of tough points and it was very tough to get the breaks. I know he didn't face any breaks (in Memphis) all of last week. "I saw him play against (Olivier) Rochus and he played very well, especially from the baseline. I knew I had to do a lot of running, and also serve well to stay in the match." Haas hit an incredible between-the-legs winner in the 10th game of the second set - copying a shot that Federer made in the second round against Daniele Bracciali - to earn a set-point. But Federer held serve, broke Haas in the next and then served out for the match. "The second set break was crucial after saving all those breakpoints earlier," Federer said. "To come out tonight against someone playing as well as him, I think it was an excellent performance and I rate it very highly." Haas was upbeat despite the defeat.
"I have played good tennis," he said. "I made the semis and lost to the No. 1 after giving him a tough battle. It's obviously the same old story against him - not using the chances that you have. I was 0-40 up and you've got to make those points in order to have a chance to win."
Tennis Channel Open
LAS VEGAS - A little more than eight hours after he found out that he'd be playing in the quarterfinals, Evgeny Korolev advanced to the semifinals in the Tennis Channel Open with a 6-4, 6-4 victory over fellow 19-year-old Sam Querrey.
Korolev, from Russia, got back into the event when the ATP Tour reversed its decision to give top-seeded James Blake the controversial quarterfinal spot.
Blake, the 2006 winner, led Juan Martin del Potro 6-1, 3-1 on Thursday in round-robin play when del Potro retired because of respiratory distress.
Korolev, a 6-2, 6-4 winner over Blake in their opening-round match Tuesday, initially was declared the group winner based on his completed victory, but the tour reversed that decision Thursday night before switching back to Korolev on Friday.
"Everyone does mistakes," Korolev said. "But it's really not fair to me or James."
Korolev will face fourth-seeded Jurgen Melzer in the semifinals today. The Austrian beat Jan Hernych of the Czech Republic 6-3, 3-6, 6-3.
In the other quarterfinals, second-seeded Lleyton Hewitt of Australia beat Spain's Feliciano Lopez 6-3, 6-2, and third-seeded Marat Safin of Russia edged Spain's Fernando Verdasco 6-1, 6-4.
DOHA, Qatar - Top-seeded Justine Henin rallied to beat fourth-seeded Jelena Jankovic of Serbia 6-7 (5), 6-2, 6-4 to advance to the final of the Qatar Open.
Henin will play second-seeded Svetlana Kuznetsova, who had one break in the first set and three in the second to beat sixth-seeded Daniela Hantuchova 6-4, 6-2 in the other semifinal.