The Spanish number two seed in Beijing looked to be heading for a crushing defeat after Fabio Fognini claimed the first set and powered to a 4-1 lead in the second.[break]
But Nadal broke the Italian´s serve in the seventh game, before winning the next three to take the second set 6-4.
Fognini, who is ranked 19th in the world, won the opener of the third set, but Nadal sealed his passage through to the semi-finals with victory in the remaining games.
Nadal is aiming to unseat Djokovic at the top of the men´s rankings by making the final in Beijing.
Current China Open champion Djokovic can only remain top if he reclaims his title and if Nadal fails to win his semi-final against either American John Isner or Czech fourth seed Tomas Berdych.
Nadal has not lost a hardcourt match all season.
The China Open reaches its climax on Sunday.
Why are we alive?