Berdych battled back in the second and used a succession of huge forehand winners to earn a vital break of serve.
Djokovic had two break points of his own to save the set but could not take advantage as the Czech levelled the match.
From the third set on Djokovic took complete control, forcing a string of unforced errors from Berdych, who tightened up on serve and struggled to keep the ball in play on crucial points.
Berdych went a break down early in the fourth and despite fighting on with a back problem could not find a way to respond.
Djokovic served out the match with ruthless efficiency to advance to the last four, where he will face Spanish battler David Ferrer.