Русская армия на Балканах, которую возглавил брат царя Николай Николаевич, насчитывала 185 тыс. человек. При штабе армии находился и царь. Численность турецкой армии в Северной Болгарии составляла 160 тыс. человек.
15 июня 1877 г . русские войска переправились через Дунай и развернули наступление. Болгарское население восторженно встречало русскую армию. В ее состав влились болгарские добровольные дружины, показавшие высокий боевой дух.
Русские войска быстро продвигались на юг, торопясь овладеть горными проходами через Балканы и выйти в Южную Болгарию. Особенно важно было занять Шипкинский перевал, откуда шла кратчайшая дорога на Адрианополь. После двухдневных ожесточенных боев перевал был взят. Турецкие войска в беспорядке отступали. Казалось, открывался прямой путь на Константинополь.
Однако 7 июля крупный турецкий отряд под командованием Осман-паши, совершив марш-бросок от сербской границы, занял крепость Плевну в Северной Болгарии. Возникла угроза флангового удара. Две попытки русских войск выбить неприятеля из Плевны успеха не имели. Движение русских войск через Балканы было приостановлено.
Перехватив инициативу, турецкие войска вытеснили русских из Южной Болгарии. В августе начались кровопролитные бои за Шипку. Противник имел пятикратное превосходство. Защитникам Шипки приходилось отбивать до 14 атак в день. Нестерпимая жара усиливала жажду, а ручей находился под обстрелом. На исходе третьего дня боев, когда положение стало отчаянным, подошли подкрепления. Угроза окружения была устранена. Через несколько дней бои затихли. Шипкинский проход остался в руках русских, но южные его склоны удерживали турки.
Подкрепления из России стягивались к Плевне. Но третий ее штурм, в конце августа, тоже закончился неудачей. Всего в трех штурмах русские потеряли 32 тыс., румыны — 3 тыс. человек. Из Петербурга приехал герой Севастополя Э.И. Тотлебен. Осмотрев позиции, он сказал, что выход только один — полная блокада крепости. Без тяжелой артиллерии ее не взять.
Началась зима. Турки удерживали Плевну, русские — Шипку. «На Шипке все спокойно», — сообщало командование. Между тем число обмороженных доходило до 400 в день. В метель прекращался подвоз боеприпасов и продовольствия. С сентября по декабрь 1877 г . русские и болгары потеряли на Шипке 9500 человек обмороженными, больными и замерзшими.
В конце ноября в Плевне закончилось продовольствие. Осман-паша сделал отчаянную, но безуспешную попытку прорыва. 28 ноября Плевна сдалась. В русском плену оказались 43 тыс. человек во главе с самым талантливым турецким военачальником. В ходе войны произошел перелом. Сербия вновь начала военные действия. Чтобы не упустить инициативу, русское командование решило идти через Балканы, не дожидаясь весны.
13 декабря главные силы русской армии во главе с генералом Иосифом Владимировичем Гурко (1828—1901) начали путь на Софию через перевал Чурьяк. Войска двигались днем и ночью по крутым и скользким горным склонам. Начавшийся дождь перешел в снег, закружилась метель, а затем ударили морозы. 23 декабря 1877 г . русская армия вступила в Софию.
Тем временем войска под командованием генерала Михаила Дмитриевича Скобелева (1843—1882) должны были вывести из борьбы группировку, которая блокировала Шип-кинский перевал. Скобелев перешел через Балканы западнее Шипки по обледенелому покатому карнизу над пропастью и вышел в тыл укрепленного лагеря Шейново. Скобелев, которого прозвали «белым генералом» (он имел привычку появляться в опасных местах на белом коне, в белом кителе и белой фуражке), ценил и берег жизнь солдата. Его солдаты шли в бой не плотными колоннами, как тогда было принято, а цепями и быстрыми перебежками. В результате боев у Шипки—Шейново 27—28 декабря 20-тысячная турецкая группировка капитулировала.
Трехдневное сражение к югу от Пловдива завершило военную кампанию. 8 января 1878 г . русские войска вступили в Адрианополь. Русская кавалерия вышла на берег Мраморного моря. Отряд под командованием Скобелева занял местечко Сан-Стефано, в нескольких километрах от Константинополя. Войти в турецкую столицу не составляло труда, но, опасаясь международных осложнений, русское командование не решилось на такой шаг.
На Закавказском театре военных действий командующим русскими войсками формально считался великий князь Михаил Николаевич, младший сын Николая I. Фактическое же руководство осуществлял генерал М.Т. Лорис-Меликов. После нескольких сражений кампания здесь завершилась взятием Карса 6 ноября 1877 г .
19 февраля 1878 г . в Сан-Стефано был подписан мирный договор. По его условиям Болгария получила статус автономного княжества. Сербия, Черногория и Румыния обрели полную независимость и значительные территориальные приращения. России возвращалась Южная Бессарабия, отторгнутая по Парижскому договору, и передавалась Карсская область на Кавказе.
Временная русская администрация, управлявшая Болгарией, разработала проект конституции. Болгария провозглашалась конституционной монархией. Гарантировались права личности и собственности. Русский проект был положен в основу болгарской конституции, принятой Учредительным собранием в Тырново в апреле 1879 г .
Англия и Австро-Венгрия отказались признать условия Сан-Стефанского мира. По их настоянию летом 1878 г . состоялся Берлинский конгресс с участием Англии, Франции, Германии, Австро-Венгрии, России и Турции. Россия оказалась в изоляции и была вынуждена пойти на уступки. Западные державы категорически возражали против создания единого Болгарского государства. В итоге Южная Болгария осталась под властью Турции. Русским дипломатам удалось добиться лишь того, что в состав автономного Болгарского княжества были включены София и Варна. Территория Сербии и Черногории была значительно урезана. Конгресс подтвердил право Австро-Венгрии оккупировать Боснию и Герцеговину.
В докладе царю глава русской делегации канцлер A.M. Горчаков написал: «Берлинский конгресс есть самая черная страница в моей служебной карьере!» Царь пометил: «И в моей тоже».
Берлинский конгресс, несомненно, не украсил дипломатическую историю не только России, но и западных держав. Движимые мелкими сиюминутными расчетами и завистью к блистательной победе русского оружия, правительства этих стран продлили турецкое владычество над несколькими миллионами славян.
И все же плоды русской победы были уничтожены лишь отчасти. Заложив основы свободы братского болгарского народа, Россия вписала славную страницу в свою историю. Русско-турецкая война 1877—1878 гг. вошла в общий контекст эпохи Освобождения и стала ее достойным завершением.