Having been outclassed in the first set and falling 5-2 down in the second, the Czech fought back to win the 2-6 7-5 6-4 to reach the last four.
Top seed Djokovic took the opening set in his usual imperious form with Berdych unable to conjure up a single break point.
The world No 6 then began to show resilience breaking Djokovic's serve twice to take the second set to a tie-breaker.
With the tie-breaker won Berdych went into a deciding set with momentum in his favour as Djokovic displayed some signs of weakness.
A single break of service in the final set was enough to see Berdych through the quarter-final tie and knock the world No 1 out of the tournament.
The 27-year-old will now face Rafael Nadal and David Ferrer for a place in the final.