Top-seeded Marin Cilic of Croatia ousted Blaz Kavcic 6-3 7-6 (7-5) on Friday to set up a Zagreb ATP semi-final against defending champion Mikhail Youzhny of Russia.
Cilic is a two-time winner in his home event but missed last year's indoor tournament with an injury.
He broke Kavcic twice in the opening set and then traded breaks with the Slovenian in the second before prevailing in the tiebreaker.
Youzhny reached the semis for the third time by defeating Croatia's Ivan Dodig 6-3 6-2, not facing a break point in the match.
The third-seeded Youzhny broke for a 4-2 lead in the first set and then raced ahead 4-0 in the second.
"It was a good match for me, I played well and I like atmosphere here," Youzhny said.
"I can't say this is the best surface ... but when I am in Moscow at home I practice indoors a lot, and I am used to the conditions like this."
Earlier, fourth-seeded Jurgen Melzer of Austria earned the 300th tour win of his career to set up a semi-final against Robin Haase of the Netherlands.
Melzer defeated Lukas Rosol of the Czech Republic 6-4 6-4 in the quarter-finals while Haase ousted Philipp Petzschner of Germany 6-4 3-6 6-0.
Melzer jumped out to a 5-1 lead in the first set and saved four of the five break points he faced in the second, winning the last three games to seal the victory.
Haase served 11 aces and broke Petzschner seven times, while saving nine of the 12 break points.