The world number three started the match well, breaking early in the first set and seeing off a brief fightback from the Argentine.
The second set was a tougher affair, and Federer was made to work hard for every point.
With the chance to wrap it up in the third, Federer was quick to assert his dominace over Del Potro.
He broke early and put enormous pressure on the 11th seed before taking the set 6-2.
Federer will face either Rafael Nadal or Tomas Berdych in the semi-finals.