Настроение в Ставке было близко к паническому. В этот драматический момент Александр II, поддержанный Милютиным, принял волевое решение: никуда не отходить, начать планомерную осаду Плевны. Для этого из России был вызван герой обороны Севастополя генерал Э. И. Тотлебен. 28 ноября (10 декабря), истощив все запасы, Осман-паша предпринял отчаянную попытку прорыва блокады. После ее неудачи турецкий корпус численностью 40 тысяч человек сложил оружие. Препятствие к дальнейшему наступлению было ликвидировано. На военном совете было решено не откладывать общее наступление до весны. Это решение означало, что горные перевалы будут преодолеваться зимой, в лютый мороз. Первым через западные перевалы двинулся генерал Гурко. Самое упорное сопротивление русские части встретили в центре, у деревень Шипка и Шейново, где лишь ценой тяжелейшего перехода через горы и 5-тысячных потерь в самом конце декабря был окружен и взят в плен 25-тысячный корпус турок. Особо заметную роль сыграл в этом успехе генерал Скобелев. Дальнейшее наступление развивалось стремительно, и уже 19 (31) января в Адрианополе было подписано соглашение о перемирии. Победа казалась полной!
Многие и в армии, и в России считали, что логичным аккордом войны будет занятие Константинополя. Однако войска были остановлены в Сан-Стефано, всего в 12 километрах от турецкой столицы. Главной причиной остановки армии был бурный протест Великобритании и угроза начала новой войны – на этот раз с самой могущественной европейской державой, к которой к тому же вполне могли присоединиться Австро-Венгрия и Франция. После некоторых колебаний флот ее величества королевы Виктории вошел в Дарданеллы, превратившись в зримый и весомый аргумент в давлении на Россию. Между тем 19 февраля, в очередную годовщину восшествия Александра II на престол, представители России и Турции подписали мирный договор, известный как Сан-Стефанский. Условия его казались необычайно выгодными. Сербия, Черногория и Румыния получали полную независимость и территориальные приращения; образовывалось огромное Болгарское княжество (формально автономное); Россия получала утраченную после Крымской войны Южную Бессарабию и некоторые территории в Закавказье. Этот договор был с восторгом встречен в России и с крайним возмущением – в европейских столицах. Впрочем, уже тогда возникла версия, что туркам удалось провести русских дипломатов: соглашаясь на значительные территориальные уступки, они-де ожидали и даже провоцировали резкую реакцию Европы, закономерно посчитавшей, что Россия пытается сделать из обширной Болгарии своего сателлита и с его помощью безраздельно хозяйничать на Балканах.
Европейские державы потребовали пересмотра двустороннего договора на общеевропейском конгрессе. Он открылся в Берлине 13 июня 1878 года. Под давлением Великобритании (которую представлял премьер-министр и лидер партии тори Бенджамин Дизраэли) и Австро-Венгрии, при одобрении Франции и полном самоустранении Германии (в Петербурге напрасно рассчитывали на поддержку германского канцлера Отто фон Бисмарка), России пришлось уступить по многим пунктам. Болгария была разделена на две части, причем более обширная и богатая южная ее часть, названная Восточной Румелией, ставилась в зависимость от Турции. Существенно урезались территории Сербии и Черногории, Австро-Венгрия получала право оккупировать Боснию и Герцеговину, а Англия – Кипр. «Берлинский трактат, – писал 80-летний министр иностранных дел князь А. Д. Горчаков императору, – есть самая черная страница в моей служебной карьере». «И в моей тоже», – признал Александр II. Между тем сложившаяся ситуация едва ли оставляла России выбор и какие-либо ресурсы противодействовать давлению держав. В полной мере сказывались последствия затяжной войны. По признанию Милютина, «военные силы так расстроены войной, так разбросаны, что никакого вероятия успеха» в новой войне не предвидится.
Как оценить итоги войны с точки зрения российских национальных интересов? Надо признать, что если Россия стремилась утвердить на Балканах свое влияние, то достичь этой цели соразмерно понесенным жертвам ей не удалось, причем совсем не из-за итогов Берлинского конгресса. Дело в том, что Турция так и не смогла установить контроль над Восточной Румелией, и уже в 1885 году две части Болгарии фактически объединились. Однако тогда же отношения Болгарии и России испортились, и дело дошло даже до разрыва дипломатических отношений, восстановленных только в 1896 году. Выяснилось также, что правительства Сербии и Румынии склонны ориентироваться не на восток, а на запад. Взаимоотношения молодых балканских государств также оказались далеко не идиллическими, и сербо-болгарская война 1885 года стала лишь грозным предвестником конфликтов, приведших уже в начале XX века к резкому обострению противоречий между Сербией, Болгарией, Румынией и Грецией. В результате Балканы превратились в настоящий «пороховой погреб Европы», взорвавшийся в 1914 году.