Русские войска продолжали копить силы под Плевной. Сюда было стянуто около 87 тысяч русских солдат при 424 орудиях. Осман-паша имел 36 тысяч человек и 70 орудий. Но русское командование плохо изучило позиции турок и не сделало выводов из предыдущих боев. Было предпринято несколько лобовых атак, в которых гибли русские воины. Третий штурм был совершен в день именин императора Александра II — 11 октября. Но несмотря на три штурма Плевна оставалась в руках турок.
Успешно действовал только отряд генерала М.Д.Скобелева на левом фланге русских войск. Но эти успехи не имели решающего влияния на ход войны. В передовых общественных кругах росло недовольство.
Турки сделали попытку прорвать русский фронт. 17 сентября они атаковали русские позиции на Шипке, но безуспешно. Наступила зима, начались морозы. В день обмораживалось ло 400 русских солдат. С сентября по декабрь 1877 г., русские и болгары потеряли 700 человек убитыми, а обмороженными, больными и замерзшими 9,5 тысячи человек. Но успешная оборона Шипки предотвратила вторжение турецкой армии в Северную Болгарию и неминуемую массовую резню болгарского населения.
В трех штурмах Плевны русские потеряли 32 тысячи, румыны — 3 тысячи человек, но задача оставалась невыполненной. Командующий русской армией великий князь Николай Николаевич растерялся. Милютин настоял на удержании русских позиций. Из Санкт-Петербурга на место боев пригласили специалиста по вопросам «крепостной» войны Э.И.Тотлебена, который рекомендовал взять Плевну голодом, так как штурмовать крепость было бесполезно.
В Плевненском укрепленном лагере находилась 50-тысячная турецкая армия. Оружия и продовольствия туркам хватало на 21 день. Неприятель решил прорвать русские порядки, но был отброшен подоспевшим резервом.
Наконец 28 ноября турки капитулировали. В плен было взято свыше 43 тысяч человек во главе с Осман-пашой. Падение Плевны было крупной победой. Турция лишилась своей лучшей армии и единственного талантливого полководца.
Затяжной характер приняли военные действия в Закавказье. Главнокомандующим Кавказской армией был великий князь Михаил Николаевич. Русская армия насчитывала свыше 100 тысяч человек и 276 орудий. Более трети войск было размещено в разных пунктах Кавказа на случай восстаний. Для военных действий была создана 60-тысячная армия под командованием генерала М.Т.Лорис-Меликова. Турки выставили против русских 70-тысячную армию.
В начале войны наступление русских было успешным: пали крепости Ардаган, Баязет. Была осаждена крепость Карс. Затем турки потеснили русских. И только с прибытием сильных подкреплений в октябре 1877 г. было решено начать новое наступление на Карс и Эрзерум. 25 октября русские с трех сторон атаковали турецкую армию Мухтар-паши у Аладжинских высот и разгромили ее. Потеряв около 20 тысяч человек, турки в беспорядке отступили. В ноябре под ударами русского оружия пал Карс. Это была неприступная крепость. Гарнизон Карса насчитывал 30 тысяч человек и 122 орудия. Но русские полководцы генералы Н.Н.Обручев и А.Н.Лазарев справились с труднейшей задачей. В ночь на 18 ноября внезапной атакой русские войска за несколько часов захватили все важнейшие укрепления крепости. Большая часть гарнизона — 18 тысяч человек, в том числе пять пашей и английские офицеры, руководившие обороной крепости, была взята в плен. Ночной штурм Карской крепости явился выдающимся достижением русского военного искусства. Но Карс находился далеко от турецкой столицы. Его падение не могло вынудить Турцию принять русские условия мира. Решающее значение имели операции на Балканах.
Падение Плевны в корне изменило военную обстановку. Русская армия сосредоточила против турок 100-тысячную армию с 394 орудиями. Начался новый этап национально-освободительной войны балканских народов. Сербия объявила войну Турции. Черногорцы заняли порт Аптивари. Но русской армии предстояли еще тяжелые бои. Началась зима.
12 декабря на военном совете с участием императора, великого князя Николая Николаевича, Д.А.Милютина и других генералов было принято решение нанести главный удар в направлении на Софию и Адрианополь правым флангом русской армии, то есть войсками генерала Гурко, через Западные Балканы. Остальные войска русской Дунайской армии должны были идти на Балканы через горные проходы Троян и Шипку.
Отбросив передовые отряды турок, русские войска 4 января 1878 г. вступили в Софию, где были захвачены огромные турецкие склады продовольствия и оружия. В тот же день начался переход через Балканы другого русского отряда под командованием генерала Карцева. Поход успешно завершился. Войска Карцева поддержали переход через хребет 54-тысячной армии генерала Радецкого. Русские войска расположились севернее Шипки против 23-тысячной армии Весселя-паши. Сражение у Шипки произошло 8 — 9 января 1878 г. Успех боя решила колонна генерала Скобелева. Турецкие редуты были взяты. В плен попало свыше 20 тысяч человек. Путь на Адрианополь был открыт. Турки бежали в панике. Они без боя сдали Пловдив. Русские войска после трехдневного сражения 20 января торжественно вступили в Адрианополь. Болгары и греки восторженно встречали русских воинов. Русская кавалерия, преследуя отступающих, вышла к побережью Мраморного моря. Крупные силы русских стали сосредоточиваться возле Константинополя и поблизости от Дарданелл. Разгром турок был полным.
13 января султан обратился к Александру II с просьбой о прекращении военных действии. В ответ русское правительство потребовало от Турции принятия предварительных условий мира, предусматривающих полную автономию всей Болгарии, Боснии и Герцеговины, независимость Сербии, Черногории и Румынии, территориальные уступки в пользу России, уплаты Турцией контрибуции, очищения турецкими войсками придунайских крепостей и Эрзерума, свободу торгового мореплавания через проливы. 31 января Турция была вынуждена подписать перемирие на предложенных Россией условиях. Договор с Турцией был подписан 3 марта 1878 г. в Сан-Стефано.
По этому договору вся Болгария от Дуная до Эгейского моря становилась автономным княжеством, продолжавшим платить дань султану, а во внутренних делах вполне самостоятельным. Срок присутствия русских войск в Болгарии устанавливался два года. Сербия, Черногория и Румыния получали полную независимость и значительное приращение своей территории. Румынии передавались Добруджа, Южная Бессарабия. Батум, Карс, Ардаган и Баязет присоединялись к России. Кроме того, Турция обязывалась уплатить 310 миллионов рублей контрибуции. Сан-Стефанский договор давал освобождение болгарскому народу.
Но успехами России были крайне недовольны Великобритания и Австро-Венгрия. Началась дипломатическая война. Ее финалом оказалось проведение Берлинского конгресса шести великих держав и Турции с 13 июня по 13 июля 1878 г. На этом конгрессе Россия оказалась в изоляции. 13 июля был подписан Берлинский трактат. Он резко изменил Сан-Стефанский мирный договор в ущерб России и славянским народам. К северу от Балкан было создано Болгарское княжество — самоуправляющееся, но платящее дань султану. Срок оккупации его русскими войсками уменьшался до девяти месяцев. Южная часть Болгарии (Восточная Румелия) была оставлена под властью Турции и получила только административную автономию. Македония и Фракия остались под властью Турции. Подтверждалась полная независимость Сербии и Черногории, но территориальные приращения, полученные ими по Сан-Стефанскому миру, были существенно урезаны. России возвращалась Южная Бессарабия. В Закавказье она удерживала за собой только Карс, Ардаган и Батум.
Огромные выгоды получили западные державы, в частности Австро-Венгрия и Великобритания. По существу, Берлинский трактат свелся к частичному разделу Турции. На Берлинском конгрессе Россия потерпела дипломатическое поражение.
С 1878 г. подпольные организации революционеров, представлявшие в России так называемое народническое движение (идеология народничества соединяла идеи утопического социализма с крестьянскими требованиями передела земли), вступили в единоборство с правительством за политические свободы посредством террора. В январе 1878 г. В.И.Засулич стреляет в петербургского градоначальника Ф.Ф.Трепова, в августе С.М.Кравчинский в столице поражает кинжалом шефа жандармов генерала Н.В.Мезенцева. В феврале 1879 г. в Харькове от руки революционеров погибает губернатор Д.Н.Кропоткин. Террорист А.К.Соловьев 2 апреля 1879 г. произвел покушение на Александра II, но был схвачен и казнен. Покушение вызвало многочисленные аресты как в столице, так и в провинции.