Однако турецкое командование, понимая стратегическое значение перевала, срочно перебросило из Черногории армию Сулейман-паши и решило провести контрнаступление с целью вытеснить русские войска за Дунай. Первой задачей Сулейман-паши было овладеть Шипкинским перевалом, при этом силы турок, брошенных на Шипку (27 тыс. чел. и 46 орудий), многократно превосходили силы его защитников (4,8 тыс. чел. и 27 орудий).
В исключительно тяжелых условиях русско-болгарские войска, героически обороняясь, удерживали свои позиции вплоть до подхода подкрепления во главе с генералом Драгомировым 24 августа, после чего русские стремительно контратаковали и отбросили противника, вплотную подошедшего к перевалу. Героическая оборона Шипки значительно нарушила планы турецкого командования и не позволила потерять важный стратегический рубеж, который русские удерживали вплоть до перехода основных сил в наступление в январе 1878 г.
Западному отряду русской армии под командованием генерала Н. П. Криденера было приказано взять крепость Никополь, после чего продолжить наступление на Плевну. 16 июля Никополь был взят, но с ходу занять Плевну русским войскам не удалось, поскольку Осман-паша сумел перебросить туда свой отборный корпус и организовать оборону города, создав при этом серьезную угрозу правому флангу и коммуникациям русской армии.
В кровопролитных боях за Плевну русские трижды предпринимали штурм города, но взять его им удалось только 10 декабря после длительной осады, в результате которой армия Османа-паши была вынуждена капитулировать.
Фактически под Плевной был решен исход войны. Еще до капитуляции Осман-паши английский премьер Дизраэли писал английской королеве:
«Падение Плевена (Плевны), который пока еще не пал, будет большим несчастьем для Британской империи».
В начале 1878 г. русская армия освободила много селений в долинах рек Марица, Стряма, Тунджа, Чая и глубоко проникла в район Родопских гор. Ее передовые части достигли берегов Черного моря и гор Странджи. Была освобождена большая часть Северо-Восточной Болгарии и вся Добруджа. Ко дню заключения перемирия 31 января был освобожден город Кюстендил, а затем и ряд населенных пунктов в долине реки Струмы, в том числе и Горна-Джумая (ныне Благоевград).
Наконец, 3 марта Турцией был подписан Сан-Стефанский мирный договор, который значительно расширял территорию Болгарии по сравнению с границами, намеченными Константинопольской конференцией. В том числе болгарам передавалась значительная часть Эгейского побережья, а турецкие войска лишались права оставаться в пределах Болгарии.
Однако итоги русско-турецкой войны 1878–1878 гг., зафиксированные в Сан-Стефанском договоре, не устроили Англию и Австрию. Британское правительство опасалось, что, включив Болгарию в сферу своего влияния, Россия станет средиземноморской державой. Вдобавок новые границы Болгарии так близко подходили к Константинополю, что проливы и турецкая столица оказывались под постоянной угрозой удара с болгарского плацдарма. Австрия же сочла, что оккупация Боснии и Герцеговины слишком малая плата за ее нейтралитет в войне. Ненасытная Вена требовала выделения ей еще австрийской зоны влияния в Западной Болгарии.
Уже через три дня после подписания Сан-Стефанского договора Австрия официально выступила с предложением созвать конгресс для обсуждения всех условий мира между Россией и Турцией, а не только статуса проливов, на что еще раньше согласился Горчаков. Фактически же речь шла о значительном пересмотре итогов русско-турецкой войны.
Россия не рискнула пойти на конфликт с двумя великими державами в сложившихся условиях. Ее армия и запасы военного снаряжения пострадали во время войны, а финансовое положение государства было весьма сложным. Поэтому царское правительство официально сообщило, что оно готово передать на обсуждение международного конгресса те условия мирного договора, которые затрагивают общеевропейские интересы.
Тем временем Великобритания, наращивая военные приготовления, демонстрировала, что готова воевать, в случае если Россия не уступит своих позиций, достигнутых в результате победы над Портой. И Петербург был вынужден подписать секретное англо-русское соглашение, по которому граница Болгарии отодвигалась от Константинополя за оборонительную линию Балканского хребта, а Англия обязывалась не возражать против передачи России Батума и Карса, а также против возвращения ей Бессарабии.
6 июня между Англией и Австрией было подписано соглашение о совместной политической линии на предстоявшем конгрессе. Оба правительства условились не допускать расширения болгарской территории южнее Балканского хребта и ограничить срок русской оккупации Болгарии шестью месяцами. Англия обязывалась поддержать притязания Австро-Венгрии на Боснию и Герцеговину.
Конгресс открылся 13 июня 1878 г. в Берлине. Представители балканских государств принимали участие в конгрессе, но не в качестве полноправных членов. Делегации великих держав возглавлялись министрами иностранных дел или же премьерами. Председательствовал на конгрессе в качестве хозяина Бисмарк, который объявил себя нейтральным посредником, хотя на деле поддерживал требования Австро-Венгрии и Англии, вынудив Россию принять большую их часть.
Берлинский трактат во многом свел на нет Сан-Стефанский договор. Приобретения России сводились к Карсу, Ардагану и Батуму. Баязетский округ и Армения до Саганлуга возвращались Турции. Территория Болгарского княжества урезывалась вдвое. Сербия, получившая незначительное приращение, разочаровалась в России и вошла в орбиту австрийской политики. России было предоставлено право оккупировать Болгарию и Восточную Румелию лишь в течение 9 месяцев со дня подписания мира. В это время наша армия активно боролась с турецкими партизанами, засевшими в Балканских горах, и помогала Софии в организации болгарской армии, получившей русских инструкторов и командиров, русское оружие и русское обмундирование.
На Берлинском конгрессе русской дипломатией была допущена большая ошибка. Речь идет о ее позиции в отношении организации болгарского государства. Александр II рассчитывал на то, что южные славяне автоматически станут русским форпостом на Балканах, поэтому вовсе не стремился к установлению российского протектората над отвоеванными у Турции территориями, а настаивал на образовании независимого болгарского государства. По этому поводу Бисмарк писал в своих мемуарах:
«Русская традиционная политика, опирающаяся частично на религиозное, частично на кровное родство, исходящая из мысли, что румын, болгар, греков, иногда римско-католических сербов, живущих под разными именами по обеим сторонам австро-венгерской границы, следует освободить от турецкого ярма и тем самым привязать к России, не оправдалась… Освобожденные народы неблагодарны, они требовательны».
В результате на Берлинском конгрессе под влиянием славянофильских сказок Россия (даже без особых возражений) согласилась значительно ограничить срок пребывания русских войск в Болгарии с двух лет, как это предусматривалось в Сан-Стефанском договоре, всего до девяти месяцев. В то время как сроки оккупации Боснии и Герцеговины австрийскими войсками вообще не оговаривались. Именно это обстоятельство со временем позволило Вене аннексировать эти территории, что, в свою очередь, привело к взрыву негодования местного сербского населения, убийству в Сараево эрцгерцога Франца-Фердинанда и началу Первой мировой войны.
По настоянию Петербурга во главе Болгарского княжества был поставлен русский ставленник, двоюродный брат Александра III, гессенский принц Александр Баттенбергский, участвовавший в войне с Турцией в составе русского уланского полка. (Болгарской армией продолжали руководить русские офицеры.) Казалось бы, естественная благодарность болгар за освобождение и наличие во главе вновь образованного княжества русского ставленника должны были бы сделать эту страну нашей верной союзницей, тем не менее реальность была очень далека от этой идиллии.
Дело в том, что Александр Баттенбергский не захотел выполнять роль русского наместника в Болгарии, а стал вести себя как правитель независимого государства, отстаивавшего интересы подданных. В мирных условиях интересы Болгарии определялись прежде всего экономическими факторами, а Россия не могла обеспечить ни рынок сбыта ее сельскохозяйственной продукции, ни финансирование и развитие народного хозяйства.
Особенно острый конфликт Петербурга с Софией возник из-за строительства железных дорог на территории Болгарии. Россия была заинтересована в сооружении линий от Дуная на юг, к Балканскому хребту, поскольку такие линии в случае новой войны с Турцией облегчили бы наступление русских войск за Балканские горы. Австрия же настаивала на строительстве железной дороги, соединяющей Вену с Белградом, Софией и Константинополем. Для того чтобы понять, насколько для Центральных государств был важен этот проект, достаточно сказать, что в дальнейшем он являлся составной частью проекта строительства стратегической железнодорожной линии, соединяющей Берлин с Багдадом.