It was a good day for Switzerland at Roland Garros as defending champion Stan Wawrinka also progressed, beating Albert Ramos-Vinolas 6-2 6-1 7-6 to reach the men's singles semifinal.
Bacsinszky, who went to the semifinals in 2015, will face unseeded Dutchwoman Kiki Bertens for a place in the last four.
Her victory prevented Williams from reaching her fifth quarterfinal in Paris and first since 2006.
It also ended the prospect of a Venus Williams-Serena Williams semifinal.
Bacsinszky reeled off nine out of ten games after slipping 0-2 down in the first set to lay the foundation for her victory.
Venus, the oldest player in the women's draw, hit just six winners.
“If I could play here every day of my life, I would do it,” said Bacsinszky, who will meet unseeded Dutchwoman Kiki Bertens next.
In the men's draw, Wawrinka became the oldest man since 1985 to reach the semifinals with his win over Spain's Ramos-Vinolas.
Third seed Wawrinka, 31, fired 49 winners past the world number 55.
“Overall, I played a good match with an incredible level in the first two sets,” said the Swiss.
“I had to dig deep to finish the match. To win in three sets, it's ideal.”
He will now play Britain's Andy Murray who beat Frenchman Richard Gasquet in four sets.