Andreescu, 18, continued her fine start to the year with a 6-0 6-1 dismantling of 20th seed Muguruza.
The Canadian wildcard needed just 52 minutes to brush past two-time grand slam champion Muguruza, beating a seed for the third time at this tournament.
Andreescu made the Auckland Open final to begin her year and reached the last four in Acapulco after winning an Oracle Challenger Series event at Newport Beach.
Ranked 152nd in the world at the end of last year, Andreescu is up to 60th and rising.
She will need to cause another upset to reach the final, with Svitolina awaiting her in the last four.
Svitolina, the sixth seed, battled past another teenager, Marketa Vondrousova, 4-6 6-4 6-4 in two hours, 12 minutes.