World number two Nadal defeated soon-to-retire compatriot David Ferrer and then saw his section of the draw open up with fifth seed Tsitsipas beaten.
The Greek looked to have recovered from a difficult first set as he forced a decider, having followed the tournament favourite onto Pista Rafa Nadal.
But Tsitsipas went down 6-4 3-6 6-2 to Struff, who will play Nadal for a place in the last four against either Dominic Thiem or Guido Pella.
Thiem, like Nadal, is a proven star on the clay courts, but Pella has also possessed a threat on the red dirt in recent months.
Pella has won more matches on this surface than any other player on the ATP Tour in 2019 and he defeated Benoit Paire 7-5 6-3. Thiem also saw off Jaume Munar in straight sets.
Kei Nishikori is through after beating Canadian teenager Felix Auger-Aliassime 6-1 6-3, booking a clash with lucky loser Roberto Carballes Baena, conqueror of Christian Garin.
Nicolas Jarry and Daniil Medvedev make up the last quarter-final after the Chilean upset Grigor Dimitrov while Mackenzie McDonald fell to the seventh seed.
At the Hungarian Open, Marin Cilic's miserable run of form continued as he was narrowly beaten by Pablo Cuevas.
Cilic - the top seed in Budapest - has won just once since the Australian Open and went down 5-7 7-6 (8-6) 7-6 (7-3).
Borna Coric, Nikoloz Basilashvili, Matteo Berrettini and Laslo Djere all progressed to the last eight, but Radu Albot was beaten by Filip Krajinovic in straight sets.