Gutsy Del Potro recovered from a set down to win 3-6, 7-6 (7/5), 6-4 against rising star Zverev and will play Serbia's Viktor Troicki, after he beat John Isner in the final match of the day. Del Potro has been suffering a left wrist injury following a heavy fall on Friday, and he may not be at his best condition. "If not, I will be nearly dead because he is going to go for the shots".
"Then I will take a decision for tomorrow. I would like to play and be 100 per cent".
Federer made another matchup by beating Richard Gasquet 7-5, 6-4.
Federer broke Gasquet at 5-5 to gain the advantage and went on to take the first set.
Timeless rival Federer was even faster, dismissing Ukrainian qualifier Alexandr Dolgopolov 6-4, 6-2 in 61 minutes.
Del Potro received lengthy treatment to the area - which has undergone surgery in the past - before battling through 4-6 6-1 6-4. Nadal also improved his win streak to 15 having taken out last week's China Open.
Nadal, who has never won the title in Shanghai, will face fourth seed Marin Cilic in the last four.
The 16-times grand slam victor, who beat Dimitrov in three sets in the China Open semi-finals last week, fired 32 winners and won two crucial breaks to prevail in two and a half hours at the Qi Zhong Centre.
"Winning a lot of matches in a row, so I'm very happy for everything", Nadal said. "Of course, being able to win the US Open, Beijing and being in the semi-finals here". I have to try to keep focus and hold that momentum. "I think both of us, we played at a very high level of tennis".
The victory ensured that the pair, who have won two Grand Slams and six titles together, qualified for the ATP World Tour Finals in London next month.
World number five Cilic secured his place in the semi-finals with a routine victory over Spain's Albert Ramos-Vinolas.
All Offers and Promotions posted in this article excludes NSW residents.