Den 39-åriga amerikanskan kom till matchen på centrecourten på Roland Garros med det högra låret omlindat.
I första set följdes spelarna åt till 3–3. Därefter vann Rybakina, 21 år, tre raka och tog det första setet.
I det andra bröt spelarna varandras servar två gånger fram till 4–4. Stundtals blixtrade den sjundeseedade Williams till, men den 21:a-seedade Rybakina kunde bryta ytterligare en gång, till 6–5 och tog sedan hem matchen med 7–5.
– Jag är så glad, det var fantastiskt. Givetvis var jag nervös, för jag servade inte så bra i matchen innan. Men jag lyckades kontrollera dem, säger Rybakina i segerintervjun.
"Jag var så nära"
Williams såg inför matchen ut att ha fått ett drömläge att ta sin 24:e grand slam-titel med tanke på att så många toppseedade spelare försvunnit. Hon får ladda om för ytterligare ett, och får fortsätta att jobba för sin första grand slam-titel sedan Australian Open 2017.
– Det var definitivt nära, jag var så nära. Det var bokstavligt talat bara någon poäng här, någon poäng där som kunde ha ändrat utgången på matchen, säger Williams.
För Rybakina väntar en första kvartsfinal i en grand slam-turnering. Hon ställs mot ryskan Anastasia Pavljutjenkova, seedad 31:a, som slog ut den förra världsettan Viktoria Azarenka.
Pavljutjenkova är därmed i kvartsfinal på Roland Garros för första gången sedan 2011. Hon vann med 5–7, 6–3, 6–2 över den 15:e-seedade belarusiskan Azarenka.
Den 33:e-seedade spanjorskan Paula Badosa slog ut den tidigare finalisten i Franska mästerskapen, tjeckiskan Marketa Vondrousova som är seedad 20:e i turneringen. Det är Badosas första kvartsfinal i en grand slam-turnering. Matchen gick till tre set: 6–4, 3–6, 6–2.
Åtta av de tio högst seedade spelarna i Paris är utslagna. Kvar är endast fjärdeseedade Sofia Kenin, USA, och åttondeseedade Iga Swiatek, Polen som ännu inte spelat sina matcher i fjärde omgången.
Medvedev vann igen på grus
Ryssen Daniil Medvedev har varit i två grand slam-finaler på hard court, men hade aldrig tidigare vunnit en match på Roland Garros grus. Nu har den andreseedade spelaren vunnit fyra och är framme i kvartsfinal. Detta efter att ha slagit ut den 22:a-seedade chilenaren Cristian Garin med 6–2, 6–1, 7–5.
I kvartsfinalen möter Medvedev den femteseedade greken Stefanos Tsitsipas som slog ut den tolfteseedade spanjoren Pablo Carreno Busta med 6–3, 6–2, 7–5.
Tysken Alexander Zverev är även han klar för kvartsfinal efter en imponerande seger mot japanen Kei Nishikori med 6–4, 6–1, 6–1. Där ställs han mot spanjoren Alejandro Davidovich Fokina.