Top seed Roger Federer was finally forced to work hard for a win at the Swiss Indoors tournament as he fought back to beat Adrian Mannarino 4-6, 6-1, 6-3 in his quarter-final on Friday.
The world number two, chasing an eighth title at his hometown tournament, had dropped only eight games as he breezed through the first two rounds but found his 28th-ranked opponent a much tougher nut to crack.
Mannarino took the first set and, although Federer cruised through the second, the Frenchman made him work hard again in the third before the Swiss completed the win.
Federer's semi-final opponent on Saturday will be Belgian third seed David Goffin, who beat American Jack Sock 7-6(6), 6-3 in the last of the night's quarter-finals.
World number four Marin Cilic had an even harder time than Federer, needing two tie-breaks to beat 100th-ranked Hungarian Marton Fucsovics 7-6(3), 5-7, 7-6(4) in just over three hours.
The Croat now faces Argentine Juan Martin del Potro, a late contender to snatch one of the last two places at the ATP World Tour Finals in London, who beat Roberto Bautista 6-2, 2-6, 6-4.