World number three Roger Federer edged closer to his first title of the season when he beat defending champion Tommy Haas 3-6 6-3 6-4 at the Halle Open on Saturday to book a spot in Sunday's final.
The 31-year-old Swiss looked sharp on the grass court after an erratic start in what was a rematch of last year's final as he prepares for his title defence at Wimbledon this month.
Federer, five-times champion at Halle, will play either Frenchman Richard Gasquet or Russian Mikhail Youzhny who contest the other semi-final later on Saturday.
Federer's unusually erratic forehand earned 35-year-old Haas his first break points at 3-2 and another long crosscourt forehand by the Swiss gave the world number 11 a two-game cushion.
Haas, whose 2012 final win over Federer was his first in 10 years against him, saved two break points at 5-2 to serve out the set when Federer pushed another forehand long.
The tables were turned in the second set with Federer racing to a 3-0 lead after breaking Haas with a much more aggressive game.
After drawing level, Federer kept up the pressure to earn yet another break when Haas double-faulted twice in a row to go 3-1 up and he clinch victory on his second match point.