Fourth-seeded Tommy Haas beat top-seeded Mardy Fish 6-3, 7-5 Saturday to reach the Citi Open final.
Second-seeded Alexandr Dolgopolov faced No. 8 Sam Querrey in the second semifinal.
Haas, the German ranked 36th in the world, improved to 4-1 against Fish, and has won six of his last seven matches against top-15 players. Fish is ranked 15th.
Haas committed no unforced errors in the first set.
"That's obviously something that doesn't happen often in my game, because I play very aggressively at times and miss a few balls here and there," Haas said. "But in order to beat people like Mardy Fish, you have to play at a very high level."
Haas ranked second in the world in 2002 before battling injuries. At 34, he said he's now "wiser" and calmer during matches.
"For a lot of the fans that like watching him play — including myself — he's certainly back to that standard," Fish said. "... No disgrace losing to someone like that.
"I'm not happy with the result today, but happy with the week."
Haas won 67 percent of his second-serve points to Fish's 46 percent.
In the women's final, top-seeded Anastasia Pavlyuchenkova played Magdalena Rybarikova.