The world No.1 defeated Dimitrov at the China Open last week but was given a much test this time around against the Bulgarian, needing two hours and 35 minutes to win the quarter-final encounter.
Nadal made light work of the first set but couldn't find a way past the sixth seed's serve in the second, Dimitrov levelling the match on the tie-break before pushing his Spanish opponent to the limit in the decider.
The world No.8 had break point at 2-2 in the third set but failed to take his chance as Nadal reeled off three straight games to regain control on route to victory.
The reigning French and US Open champion has now won his last 15 successive matches and remains on course for his seventh tournament triumph of the year.
Next up for Nadal is a clash with Marin Cilic, the Croat downing Spain's Albert Ramos-Vinolas 6-3 6-4 as he kept up his record of not dropping a set during the Shanghai Masters.