Muchova had to defend five break points to come through the first set but was overpowered in the second.
Sabalenka then broke in the opening game of the third set, but world number 49 Muchova refused to allow the three-time Grand Slam champion out of sight.
Belarusian Sabalenka had not been beaten since 10 August, winning the Cincinnati Open and US Open, external during that period, but it was Muchova who found an extra gear to win four games in a row and take a step closer to her first WTA title of the year.
In Friday’s other quarter-final, Zheng executed a remarkable turnaround to defeat Russia’s Andreeva.
World number 22 Andreeva won the first four games of the opener, but lost the following five and had to wrap up the set via a tie-break.
Zheng, who won gold at the 2024 Paris Olympics, had a renewed energy when the second set began – recording a bagel to level the match.
Andreeva appeared to have wrestled back control when leading 4-2 in the third until world number seven Zheng won four games in a row to book her spot in the semis.