The 18-year-old Andreescu, ranked 152nd in the world, beat Williams, 20 years her senior and a seven-time Grand-Slam winner, 6-7 (1/7), 6-1, 6-3.
The tournament qualifier amazed even herself with the come-from-behind victory a day after she eliminated top seed and world number three Caroline Wozniacki.
“My goal was only to qualify and maybe get a couple of rounds in, but now I’ve beaten a couple of top players,” the surprised teen said.
“I believe that everything is possible and tonight I think I did the impossible.”
Andreescu broke Williams eight times as she slugged it out from the baseline and mixed in smart drop shots which the 38-year-old American struggled to reach.
Williams, who had been a professional for six years before Andreescu was born, took the first set and broke Andreescu at the start of the second.
From there the young Canadian reeled off 11 games in a row before a Williams rally briefly prolonged the deciding set.
Andreescu will meet Hsieh Su-Wei in the semi-finals after the third seed, who has not dropped a set all week, beat Spain’s Sara Sorribes Tormo 6-3, 6-2.
Defending champion Goerges, who will play Viktoria Kuzmova in the other semi, fought back from facing match point to overpower Canadian Eugenie Bouchard in the three-set cliffhanger 3-6, 6-3, 7-6 (8/6).
Despite the distraction of a blustery wind, Bouchard seemed headed for an upset over the tournament second seed when she won the first set.
But Goerges refused to give up and rallied from 0-3 in the third set and also faced match point at 5-6 before winning the deciding tie-break.
“It’s the biggest part I’ve learned in the last two or three years when I got up the rankings,” Goerges said.
“So for me it’s not about giving up, it’s about finding solutions and trying to find a way to get a winner.”
In the clash of the rising stars, 20-year-old Kuzmova outlasted 17-year-old Amanda Anisimova 6-3, 2-6, 6-4.
Anisimova, the wildcard in the draw, had stunned fifth-seed Barbora Strycova in the second round and was up a break early in the third set but could not maintain consistency in the windy conditions.