The 16-times grand slam winner, 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.
Nadal, who extended his winning streak to 15 matches, pegged Dimitrov back with relentless baseline hitting to take the first set with ease.
But the Bulgarian, who sent down 13 aces in the match, took the fight to the Spaniard in the second set, coming from 3-0 down in a tie-break to level.
Trailing 3-2 in the decider, Dimitrov’s forehand crashed into the net to hand Nadal the break he needed. The top seed consolidated to make it 5-2 before serving out the match.
”It was a very tough match,“ Nadal said. ”I think both of us, we played at a very high level of tennis. The conditions have been different today than my two previous matches.
“I think (it was) a great battle between two players who are playing all the time very focused, very intense points... Both of us served well during the whole match, so yeah, it was decided on just a few balls, and anything can happen.”
Next up for the 31-year-old is Croatian Marin Cilic, who beat Albert Ramos-Vinolas 6-3 6-4 in another quarter-final.
“It will be a tough one. I know that I need to be focused with my serve again, and I need to play aggressive and don’t let him play from comfortable positions. If not, I will be almost dead because he is going to go for the shots.”
Roger Federer, the only man who can deny Nadal the year-end world number one ranking, powered past Frenchman Richard Gasquet 7-5 6-4.
Federer broke Gasquet at 5-5 to gain the advantage and went on to take the first set. The world number two claimed two more breaks in the next to seal the deal in an hour and 18 minutes.
In the semi-final, the Swiss will meet former U.S. Open champion Juan Martin del Potro who came from a set down to defeat Viktor Troicki 4-6 6-1 6-4.