Del Potro started the contest slowly and was punished by his opponent, with Djokovic recording an early break of serve.
The Serb looked comfortable during his own service games and closed out the first set by breaking Del Potro for the second time.
However, Djokovic seemed to lose focus at the beginning of the second set and Del Potro took advantage by breaking the defending champion's serve.
The Argentinian served for the set but he squandered the opportunity and had to settle for a tie-breaker.
In an entertaining decider, Djokovic fought back from an early deficit to extend his lead with a 7-3 triumph to win a set that lasted 84 minutes.
Djokovic sensed victory and he improved his chances of progress by once again breaking Del Potro's serve at the start of the third set.
The former world number one survived a couple of break points on his serve late in the set before completing the win to set up a semi-final clash with David Ferrer.