Wobec perspektywy opanowania miasta przez czerwonych gen. Ławr Korniłow w nocy z 21 na 22 lutego 1918[4][a] wyszedł z czterotysięcznymi siłami z Rostowa i udał się na południe przez stepy w kierunku Północnego Kaukazu[3]. Natychmiast po tym wydarzeniu do Rostowa wkroczyła kolumna oddziałów Antonowa-Owsiejenki dowodzona przez Rudolfa Siwersa[2]. Razem z białymi podążała kilkutysięczna grupa uciekającej ludności cywilnej[2]. Marsz Armii Ochotniczej nazwany został następnie Lodowym[3].
Armia Ochotnicza posuwała się naprzód, omijając linie kolejowe i osady, uchodząc przed pościgiem znacznie silniejszych liczebnie sił czerwonych[3]. Czerwona Gwardia posiadała w regionie nawet 100 tys. ludzi, byłych żołnierzy armii carskiej, którzy byli jednak bardzo źle zorganizowani[2]. Po pięćdziesięciu dniach marszu i stoczeniu ok. 40 bitew z czerwonymi Armia Ochotnicza dotarła 17 marca do stanicy Nowodmitrijewskiej, gdzie połączyła się z Kozakami kubańskimi atamana Aleksandra Filimonowa i gen. Wiktora Pokrowskiego[5]. Tym samym siły białych wynosiły sześć tysięcy ludzi[5]. W Nowodmitrijewskiej Armia Ochotnicza pozostała do 22 marca, odpierając kierowane od strony stanicy Grigorjewskiej ataki czerwonych pod dowództwem Aleksieja Awtonomowa[6]. 30 marca gen. Ławr Korniłow zdecydował, iż celem natarcia Armii Ochotniczej będzie Jekaterynodar[7]. Bolszewicy objęli władzę w tym mieście dwa tygodnie wcześniej[8].
Przebieg walk o Jekaterynodar
Biali zdawali sobie sprawę z tego, że siły, jakimi dysponowali w Jekaterynodarze dowodzący czerwonymi Aleksiej Awtonomow i Iwan Sorokin przewyższały liczebnie ich własne (według Smelego - 18 tys. czerwonych[5]). Wywiad Armii Ochotniczej zorientował się również, że Awtonomow i Sorokin mieli w najbliższym czasie otrzymać uzupełnienia. Równocześnie jednak wywiadowcy donosili Korniłowowi o demoralizacji i rozprężeniu w szeregach przeciwnika[9]. Dowódcy białych wierzyli również we własne siły, mając w pamięci udane odpieranie ataków przeważających liczebnie czerwonych podczas Marszu Lodowego[10]. W razie udanego szturmu miasta Korniłow spodziewał się uczynić z niego centrum ruchu białych, miejsce, gdzie w oparciu o Kozaków kubańskich Armia Ochotnicza będzie mogła zostać znacząco wzmocniona[10].
Korniłow postanowił zaatakować, przerzucając swoje siły na promach przez rzekę Kubań na wysokości stanicy Jelizawietinskiej na zachód od miasta. Jego oddziały były zbyt szczupłe, by zorganizować pełne oblężenie miasta; na odcinku południowym zamierzał ograniczyć się do przerwania łączności Jekaterynodaru z Noworosyjskiem. Czerwoni błędnie ocenili zamierzenia przeciwnika, spodziewając się uderzenia z południa[10].
Szturm rozpoczął się 10 kwietnia od zajęcia przez oddział gen. Iwana Erdelego przeprawy przez Kubań[10]. Następnego dnia rankiem Armia Ochotnicza odcięła linie kolejowe wychodzące z Jekaterynodaru na północ i zaczęła okrążać miasto. Korniłow postanowił przyspieszyć natarcie, by zająć miasto jeszcze przed nadejściem bolszewickich posiłków[9]. Walki 11 kwietnia były bardzo zacięte. Po pierwszych sukcesach białych nastąpiło kontrnatarcie czerwonych, następnie cała seria ataków i kontrataków. Dowodzący obroną Aleksiej Awtonomow umiejętnie wykorzystywał przewagę liczebną bolszewików. Białym udało się opanować przedmieścia, ale próby przeniknięcia dalej były skutecznie odpierane[9].
12 kwietnia Pułk Oficerski pod dowództwem gen. Siergieja Markowa odniósł poważny sukces, zajmując budynki koszar konnicy i artylerii, co miało otworzyć drogę do dalszych natarć z kierunku północnego. Jednak natarcie podążającego za nim Pułku Korniłowskiego załamało się, gdy najpierw zginął dowodzący nim Mitrofan Nieżencew, a zastępujący go Władimir Indiejkin został ciężko ranny. Po zmroku tego dnia gen. Boris Kazanowicz zdołał z kolei przerwać linię obrony czerwonych i przedrzeć się aż do centrum miasta, jednak na skutek problemów z łącznością i załamania morale w jednostkach białych po utracie lubianych dowódców nie podążył za nim żaden inny oddział[11]. Kazanowicz, przekonawszy się w sytuacji, wycofał się, przekonując napotkane siły czerwonych, że dowodzona przez niego grupa to "czerwony pułk kaukaski"[11]. Tego dnia biali byli najbliżej zajęcia Jekaterynodaru. W kolejnych dniach ich szturmy były odpierane, Armii Ochotniczej zaczęło brakować amunicji, a część Kozaków kubańskich porzuciła Korniłowa, nie wierząc w powodzenie operacji[11]. Zginęła większość białych dowódców pułków, batalionów i kompanii[10]. Biali stracili półtora tysiąca zabitych i tyle samo rannych[12]. Czerwoni tymczasem otrzymywali posiłki z Tichorieckiej, stanicy Kawkazskiej oraz z Noworosyjska, gdyż Armia Ochotnicza nie zdołała odciąć odpowiednich linii kolejowych[11]. Mimo wszystkich czynników Korniłow zdecydował o kontynuowaniu szturmu, twierdząc, że w razie odstąpienia Armia Ochotnicza jest skazana na zagładę[12].
13 kwietnia artyleria czerwonych uderzyła w kwaterę Korniłowa. Generał zginął na miejscu[5]. Dowództwo Armii Ochotniczej przejął gen. Anton Denikin, który zdecydował o natychmiastowym przerwaniu prób zajęcia miasta, uznając, że morale żołnierzy po śmierci Korniłowa całkowicie upadło[13]. Denikin wyprowadził ocalałe siły białych z powrotem na step[14].