В начале марта 1919 г. на Восточном фронте началось широкомасштабное наступление колчаковских армий. В апреле белые прервали связи с Туркестаном и заняли выгодные позиции для прорыва центра Восточного фронта. Главной целью операции адмирал А. В. Колчак считал соединение с деникинскими войсками для совместного похода на Москву. В конце апреля советские войска под командованием М.В. Фрунзе перешли в контрнаступление, в ряде последовательных операций нанесли серьезное поражение колчаковцам и создали предпосылки для взятия Урала.
В мае войска генерала Н.Н. Юденича перешли в наступление на петроградском направлении. Были взяты Гдов, Ямбург и Псков. Под Петроград с Восточного фронта и из резервов были направлены советские войска. В результате в конце июня белые были отброшены на Олонецком направлении, а в августе — на Нарвском за Ямбург и Гдов.
В ходе наступления на Восточном фронте в июле 1919 – январе 1920 гг. советские войска продолжали теснить колчаковцев, вскоре заняли Пермь, Златоуст, Екатеринбург и разбили под Челябинском их последние резервы. В августе советские войска развернули наступление в Западной Сибири — заняли Омск, Новониколаевск и Красноярск. 4 января 1920 г. Колчак отказался от должности, был арестован и расстрелян. В начале марта части Красной Армии вступили в Иркутск.
В августе 1919 г. был образован Туркестанский фронт под командованием М.В. Фрунзе. В сентябре в районе Орска и Актюбинска части Красной Армии разбили крупную белоказачью группировку и соединились с войсками Туркестанской республики.
В начале лета 1919 г. сложная обстановка сложилась на Южном фронте. В течение июня —августа деникинцы заняли Донбасс, Донецкую область, Харьков, Царицын, Киев, Одессу и развернули крупномасштабное наступление на московском направлении. К середине октября они взяли Орел и Воронеж. В результате начавшегося контрнаступления на Южном фронте Красная Армия вступила в конце октября — начале ноября в Орёл, Воронеж, Курск, а силами Юго-Восточного фронта в середине ноября был занят Новохопёрск.
Одновременно с наступлением деникинцев на Москву белая армия Н.Н. Юденича предприняла второе наступление на Петроград. К середине октября она вышла на ближние подступы к городу, но вскоре потерпела поражение, и в декабре остатки ее были отброшены на территорию Эстонии.
Во второй половине ноября развернулось новое наступление Южного и Юго-Восточного фронтов, в ходе которого части Красной Армии расчленили деникинскую армию на две группировки: одна отходила на Одессу и Крым, другая — на Ростов и Новочеркасск. В Ростово-Новочеркасской операции в начале января 1920 г. советские войска взяли Таганрог, Новочеркасск, Ростов, Киев, Царицын, а в феврале заняли Правобережную Украину. Главные силы Деникина пытались закрепиться на нижнем Дону, но в январе — марте в ходе Северокавказской операции были разгромлены частями Кавказского фронта. Остатки деникинской армии в конце марта эвакуировались в Крым, 4 апреля Деникин сложил с себя командование и объявил своим преемником П.Н. Врангеля.
На Российском Севере к октябрю 1919 г. Антанта эвакуировала все свои войска. В начале марта 1920 г. части Красной Армии заняли Мурманск и Архангельск.