The Argentine player came through 3-6 6-3 6-4 after one hour and 46 minutes of tennis.
Dimtrov broke his opponent in the opening set to move 3-1 ahead and maintained his advantage, holding serve well to close it out 6-3.
There was little to separate the two players in the early stages of the second set, until some excellent returning from Del Potro saw him break to establish a 4-2 lead.
The world number five then comfortably held his next two service games to take the second set.
Both players gave little away off their own service games in the third set, but in the ninth game Del Potro made a crucial break to give himself a 5-4 lead.
He then held his nerve to serve out the match and book a place in the last eight of the competition.