Federer subsequently eased past Richard Gasquet in straight sets to book a last-four clash, but it remains to be seen whether Del Potro will be fit to face the Swiss on Saturday. I'm going to the hospital to see what the MRI says, and what the doctor says.
Topping Grigor Dimitrov of Bulgaria 6-4 6-7 (7-6) 6-3 was his 870th match win.
The Spanish world number one defeated Dimitrov en route to winning the China Open last week and he repeated the success with a 6-4 6-7 (6/8) 6-3 win on Friday, extending his winning streak to 15 matches.
Timeless rival Federer was even faster, dismissing Ukrainian qualifier Alexandr Dolgopolov 6-4, 6-2 in 61 minutes.
Nadal is yet to drop serve in Shanghai.
The final set was full of momentum shifts, first starting with Dimitrov's break of serve in the opening game as he carried over the momentum from the second set.
Nadal, who is chasing his fourth end of year No.1 ranking, said he was happy to have taken care of his opponent in just over an hour. "Of course, being able to win the US Open, Beijing and being in the semi-finals here".
"I think (it was) a great battle between two players who are playing all the time very focused, very intense points".
"I don't understand how I can lose a match where I get broken one time in three sets and not managed to get any chances on his serve", said Zverev, who is tipped to one day make world number one.
Meanwhile, Cilic's quarter-final win over Albert Ramos-Vinolas puts him ahead of Dimitrov at No 5 in the race to the ATP World Tour Finals in London.