Walki tego dnia były bardzo krwawe, strzelano do siebie z małej odległości, o Żyrową, Krępną i Rozwadzę walczono na bagnety. Straty w dwóch pułkach 1 Dywizji Powstańczej wyniosły 100 osób.
Jak dowiedział się powstańczy wywiad podsłuchując Niemieckie radiostacje, tego dnia w szturmach na Górę Świętej Anny Niemcy mieli stracić około 500 zabitych lub rannych żołnierzy.
Chociaż dwa bezpośrednie ataki na Górę Świętej Anny zostały odparte, jednak widząc niemieckie sukcesy w miejscowościach wokół wzgórza, Ludyga-Laskowski wydał rozkaz opuszczenia Góry Świętej Anny i wycofania oddziałów na wschód.
Przeprowadzone 21 maja 1921 r. ataki w kierunku Góry Świętej Anny i Kędzierzyna Niemcy poprzedzili szeregiem akcji zaczepnych mających odwrócić uwagę od swojej wzmożonej aktywności w rejonie Gogolina. Na południowym odcinku frontu kluczowe znaczenie miała podraciborska wieś Olza, którą Niemcy próbowali odzyskać już 4 i 5 maja. W dniach 15-19 maja w tym rejonie przeprowadzili kilka lokalnych operacji zaczepnych, które miały za zadanie związać możliwie duże siły powstańcze, by w chwili szturmu na Górę Świętej Anny nie można było ich tam przerzucić.
21 maja Niemcy rozpoczęli także silniejsze niż dotychczas ataki na północy – w rejonie Olesna, Zębowic, Kiełbaszyna i Wędryni. 22 maja w próbie opanowania Borek Małych i Olesna wziął udział niemiecki pociąg pancerny. Podobnie było w Kiełbasinie, Zębowicach i Starym Oleśnie. Ostatecznie tego dnia linia frontu została utrzymana.
W rejonie Góry Świętej Anny nadal trwały walki, choć tu impet niemieckiego natarcia w porównaniu z dniem poprzednim nieco już zelżał. Jeden z batalionów kontratakując zdobył tego dnia sześć niemieckich ciężkich karabinów maszynowych.