Спасая положение, командование Украинского фронта сосредоточило для нанесения контрудара во фланг петлюровцам в районе Бородянки (50 км северо-западнее Киева) 1-ю Украинскую советскую дивизию Н. А. Щорса, сняло ряд боеспособных частей из Харьковской группы войск и направило их под Житомир, Фастов и Киев.
Мощный контрудар советских войск застал петлюровцев врасплох. Сичевые стрельцы обратились в паническое бегство. Сам атаман Евген Коновалец едва не попал в плен. «Тикайте, батьку, бо Щорс на подходе!» — с диким воплем ворвется в штаб атамана сичевой сотник Задериус. «Ты пьян, скотина!» — заявит Коновалец и надает сотнику по мордасам. В ту же секунду на улице со страшным грохотом разорвется тяжелый снаряд, а на окраине Коростеня зачастит ружейно-пулеметная стрельба. Это в город на плечах отступающих петлюровцев ворвались передовые части 1 — й Украинской советской дивизии. Коновалец вскочит в какую-то таратайку и, неистово настегивая лошадей, спасется бегством.
К 10 апреля положение в районе Коростеня было восстановлено. К концу месяца Киевская группа войск, преобразованная в 1-ю Украинскую советскую армию, преследуя отступающего противника, вышла на рубеж Олевск, Шепетовка, Проскуров, Могилев-Подольский и далее по среднему течению Днестра до Дубоссар. Передовые части армии на отдельных участках выдвинулись в пределы Восточной Галиции.
Не менее успешно развивалось наступление Харьковской группы войск Украинского фронта (командующий А. Е. Скачко) в составе 1-й Заднепровской советской дивизии, 2-й отдельной бригады и двух отдельных полков, насчитывавших 26,7 тыс. штыков и сабель, 36 орудий, 280 пулеметов и 2 бронепоезда.
23 марта из Харьковской группы войск были выделены две самостоятельные оперативные группы, получившие боевые задачи с рубежа Березовка — Очаков — Мелитополь — Мариуполь начать наступление на одесском и крымском направлениях.
27 марта оперативная группа войск одесского направления повела концентрическое наступление на Одессу по двум направлениям — со стороны Очакова и Березовки. Части белогвардейцев и интервентов с боями отступали к городу. В том же месяце Верховный совет Антанты, вынужденный признать бесперспективность дальнейшего пребывания французских экспедиционных сил под командованием генерала д'Ансельма на Украине, принял решение об их эвакуации морем.
В начале апреля в Одесском порту началась эвакуация, сопровождавшаяся безобразными сценами и вооруженными стычками между белогвардейцами и интервентами, которые, в конце концов, привели к резкому осложнению отношений Деникина с французским военным руководством. Вскоре войска Антанты ушли из Одессы, прихватив с собой 122 транспортных судна с награбленным имуществом. 6 апреля в город вошли советские части.
В свою очередь войска Крымской ударной группы, после неудачного штурма перекопских позиций, перешли вброд Сиваш и утром 7 апреля неожиданно ударили в тыл белогвардейцев. В ходе стремительного наступления были захвачены Джанкой, Симферополь, Евпатория. Части Крымско-Азовской добровольческой армии начали поспешно отходить к Керчи и Феодосии, открыв дороги к городам южного Крыма.
Передовые части Крымской ударной группы устремились к Севастополю, где дислоцировались остатки французских экспедиционных сил. Видя безвыходность положения, командующий 2-й французской эскадрой на Черном море вице-адмирал Амет вступил в переговоры с советским командованием о порядке передачи города украинским советским властям. Начавшиеся переговоры позволили противнику беспрепятственно провести эвакуацию своих войск и изрядно навредить красным. Перед уходом интервенты взорвали орудия севастопольской крепости, разгромили военные склады, потопили 10 русских подводных лодок и увели вместе с белогвардейцами один линкор, один крейсер, 6 эсминцев, 2 миноносца, 3 подводные лодки и несколько десятков других кораблей и вспомогательных судов. 29 апреля французская эскадра навсегда покинула севастопольский рейд.
Приказом командующего Украинским фронтом Харьковская группа войск и оперативная группа войск одесского направления были преобразованы соответственно во 2-ю и 3-ю Украинские советские армии, а на базе Крымской ударной группы была развернута Крымская советская армия.