Berdych was just two points away from defeat before he managed to force his way into the match and beat Djokovic 6-2 5-7 6-4.
"It's a special victory. I was on 11 defeats in a row and it had to stop," said Berdych, who did not even create a break point until Djokovic served for the match at 5-3 in the second set.
Next up for Berdych will be a match-up against either world number five Rafael Nadal, after the six-times former champion survived a second set fight-back from David Ferrer to triumph 6-4 4-6 6-2.
"It was a very weird match," Djokovic said. "I lost concentration and I started to play too defensively and did not convert my opportunities and I lost this match on my own.
"I need to make sure that I don't have highs and lows. I'm sure that I will be ready for Paris."
Djokovic cruised through the first set in just 32 minutes, producing some sublime tennis as he broke in the fourth and eighth games while barely being tested on his own serve.
The second set looked to be following much the same path when Djokovic broke in the sixth game, with the net helping him create the perfect drop shot when his return of serve caught the top of the tape and rolled over.
But with Djokovic serving for the set, it all fell apart for the world number one. A forehand into the net handed Berdych a lifeline, a break back point.
The Czech took it with a rattled backhand winner down the line before breaking again in the 11th game and levelling up the match at one set apiece with a cross court forehand winner at the first time of asking.
An early break for Berdych in the third set compounded Djokovic’s woes as Berdych sought just his second win over the Serb in 15 attempts.
Berdych was forced to fend off a break point in the very next game, but did so with a forehand volley winner, before marching confidently through the remainder of his service games and towards the semi-finals.
Serving to stay in the match at 4-5, Djokovic posted a solid hold to leave Berdych serving for the match.
Three match points quickly followed for the Czech before his only real stumble of the final set. A backhand long and two forehands wide, one in either direction, quickly allowed Djokovic to level up at deuce.
But the sixth seed held his nerve, earning himself a fourth chance with a vicious forehand that Djokovic could only net in response, before booking his place in the semi-finals with an ace.
Despite booking his place in the semi-finals Nadal did not have it all his own way against fellow Spaniard Ferrer, the world number four enjoying the first opportunity to break – in just the fourth game of the match.
But Ferrer could not take advantage of the chance and Nadal punished him in the very next game, securing the opening break when Ferrer meekly dumped a forehand into the net.
Ferrer also held a couple of break back chances in the very next game but again Nadal saved them before going on to serve out the set with no further trouble.
The 31-year-old completely turned things around in the second set, however, breaking in the second and fourth games before Nadal could get himself on the scoreboard with a break back in the fifth.
Despite looking on course to level the match in the ninth game when he served for the second set, Ferrer dropped his serve only to eventually seal the set a game later, breaking the Nadal serve for a third time with a backhand passing shot winner down the line.
The defending champion quickly regained momentum, however, breaking in the third and fifth games of the final set before serving out the match when Ferrer sent a forehand return of serve long.
"It was an extremely tough match, David always takes you to the limit," said Nadal, looking for his sixth title in eight tournaments since returning from injury.
"I am extremely happy. I think I made a huge effort both in the second set when I was 4-0 down and in the third to get past a fantastic opponent."