Alexandrova needed only 76 minutes to beat the Spaniard, a two-times Grand Slam victor, to reach her second WTA singles final and she will look to win her first trophy on the tour when she takes on Kazakh seventh seed Elena Rybakina.
In the opening set, Rybakina was on the way to being broken when she was met with a forehand victor from her opponent.
She was forced to come from a set down, then save a match point at 5-6 in the second, before seeing off the reigning Australian Open champion.
"In the second set I think she played well but after I got the break to make it 4-4, she got a bit nervous. I won my first title, and it feels unbelievable", the 25-year-old Alexandrova said.
Spain's Muguruza, 26, had a poor run past year but showed signs in southern China of rediscovering the form that made her world number one in 2017. But few could have expected a match of this quality and length in the first tournament of the year. She broke her seventh-seeded opponent thrice in the set but was also lost the sole break point she faced on her serve.
Alexandrova last played in a WTA Tour final in Linz, Austria, two years ago and will have a chance to win her maiden title when she takes on Elena Rybakina in Saturday's final.