Germany started well in the first set but China hit back quickly and won four consecutive points to lead 9-5, then extended it to 17-7.
It was a shock for Germany, who have been one of the tournament's best sides, as they lost the set 25-19 against a team that had won just one match prior to this fixture.
China carried their good play into the second set as Gao Hui dominated for the world number six side. The teams were tied at 14-14 midway through the set and continued to score evenly until China put together a good run at the right time to win 25-21.
The third set sparked a magnificent comeback by the European team who pulled six clear to lead 19-13 before taking the set 25-21. Heiko Wiesenthal, Germany's best player so far in the tournament, began to find his form again.
In the fourth set China had a 15-13 lead but good blocking at the net enabled Germany to win 25-19 and force a decisive fifth set.
Scoring was even early in the fifth set, as the teams looked nervous. But Germany established a four-point lead and hung on to it to win the set 15-10 and seal victory in the match.