Djokovic produced his best set of tennis since the Australian Open to open the match before the typically tenacious Ferrer bounced back to make the second set a blisteringly competitive affair.
The defending champion will face Argentina’s Juan Monaco in the last four; after the 21st seed beat Mardy Fish 6-1 6-3 in the day’s other quarter-final.
The scoreline did little to flatter Ferrer, who, particularly in the second set, went toe-to-toe with Djokovic and frequently came out on top.
But in the end, the top seed had just too much for his Spanish opponent, and reached his fourth semi-final of the year.
The first set was just about as perfect a set as Djokovic could play; the Serb breaking in the third and seventh games while hitting 11 winners and just four unforced errors.
Ferrer was under pressure right from the opening game, Djokovic earning himself early break points before the Spaniard narrowly held on to get the match underway.
Just two games later and Djokovic did have his opening break to love, pushing Ferrer around all areas of the court and eventually drawing the error from the Spaniard.
A quick service hold to love, followed by another two games later, saw Djokovic extend his comfortable lead before he broke again, Ferrer double faulting on break point.
The Serb wasted little time in wrapping up the set, serving out at the first attempt in just 32 minutes, before also breaking in the first game of the second set to put himself on course for a comfortable victory.
But Djokovic’s level dropped almost imperceptibly and the indefatigable Ferrer, who had done little wrong in the first set, began to have more and more success in the longer rallies.
A forehand passing shot winner down the line followed by a backhand passing shot winner across court gave Ferrer the confidence needed to break back, which he did when Djokovic sent a rushed forehand wide, as the Serb started showing signs of looking just a little rattled.
Ferrer enjoyed further break points in the fifth game of the set and, although the chance went begging with a forehand into the net, the increasing crowd support for the Spaniard was clearly beginning to affect Djokovic.
Nevertheless, the world number one found himself in front once again, and preparing to serve for the match, when Ferrer sent a mis-hit backhand well long of the baseline after another lengthy rally.
And yet Ferrer was still not done; breaking back for a second time in the set when Djokovic hit into the net in the 41st shot of a brutally physical rally.
The Serb, having served for the match just seconds before, suddenly found himself serving to stay in the set, forcing the tie-break when Ferrer sent a chipped forehand return of serve long down the centre of the court.
But Djokovic, clearly not keen on going for a third set, found another gear in the breaker, with a little help from Ferrer, who dropped one point on a poor challenge mid-point despite being right on top of the ball.
The Spaniard continued to chase down every ball but in the end Djokovic simply had too much power, dropping just the one point in the breaker as he wrapped up a hard-fought win.