Jannik Sinner survives Jan-Lennard Struff test to reach Halle Open semis
Struff, who upset sixth seed Stefanos Tsitsipas in the last 16, challenged the Italian as he hit 18 aces and saved 16 of 18 break points in the two-and-a-half-hour contest.
"It was a very tough match," Sinner said after his third consecutive three-set win. "I had chances in the second set and chances in the third, but I couldn't take them.
"I just tried to accept these kind of challenges. It was very tough mentally.
"I played a lot yesterday and today. Two hours on grass is a long time. I'll try to recover for tomorrow. Hopefully I'll show some good tennis."
Sinner, playing his first tournament atop the ATP world rankings, will face China's 42nd-ranked Zhang Zhizhen who edged Christopher Eubanks of the United States 6-4 4-6 7-5.
German Alexander Zverev also reached the semis as he rallied after dropping a first-set tiebreak to Frenchman Arthur Fils to prevail 6-7(5) 6-3 6-4.
The world number four will face Polish fifth seed Hubert Hurkacz, who defeated American Marcos Giron 7-6(5) 6-4.