The world number 18 needed just 68 minutes to defeat the fourth-seeded American and set up a clash with reigning champion Iga Swiatek or Ukrainian teenager Marta Kostyuk for a place in the last four.
Sakkari broke Kenin six times as the 2020 Australian Open winner committed 32 unforced errors and served nine double faults.
“I’m speechless. I love Paris. I’m having a great time and I don’t want to leave anytime soon," said Sakkari, who reached the last 16 in Melbourne and New York last year.
“I’m actually enjoying myself, that’s the most important thing. I’m not actually torturing myself when I’m on court."
The win over Kenin was Sakkari’s third win over a top-five player this season. It also left eighth seed Swiatek as the highest-ranked player left in the women’s draw.
“The match before yesterday gave me a lot of confidence," said Sakkari, who beat 14th seed Elise Mertens in three sets in the previous round.
“I played really good tennis and so today I was really ready for a battle."