Россия решила действовать по своему усмотрению. В сентябре 1876 г. Александр II принял решение о мобилизации армии. 19 (31) октября Россия потребовала от Османской империи, войска которой развернули наступление на Белград, в течение 48 часов заключить с Сербией перемирие. Турки приняли это требование, но их тотчас же взяла под защиту Великобритания. 9 ноября британский премьер-министр Б. Дизраэли осудил действия России, в которых усмотрел покушение на территориальную целостность Турции, вплоть до угрозы объявления войны. В ответ Александр II заявил, что Россия не остановится перед войной, если не сможет дипломатическими методами обеспечить защиту южных славян и добиться признания властями Османской империи их национальных прав.
В декабре 1876 г. состоялась конференция представителей великих держав в Константинополе (Стамбуле). Россия выступила на ней за наделение христианских народов Османской империи широкой самостоятельностью. Напротив, Великобритания и Австро-Венгрия настаивали на сохранении территориальной целостности Османской империи, соглашаясь лишь на незначительные реформы. Однако османские власти отвергли и эти умеренные рекомендации держав. 23 декабря 1876 г. они обнародовали первую в историю Турции конституцию, которая предоставляла всем подданным султана без различия вероисповедания личную свободу и равенство перед законом. Это позволило турецким представителям утверждать, что необходимость в особых мерах по защите христиан отпала. В марте 1877 г. по инициативе России в Лондоне состоялась конференция шести великих держав, в очередной раз потребовавшая от правительства Османской империи реформ, направленных на улучшение положения христиан. Но Порта отклонила и эту дипломатическую инициативу.
Россия встала перед трудным выбором. Русское правительство учло уроки Крымской войны. Большинство держав ему удалось убедить в том, что Россия преследует на Балканах исключительно справедливые цели, не идущие вразрез с интересами других стран. С Австро-Венгрией 3 (15) января 1877 г. была заключена конвенция о ее доброжелательном нейтралитете и дипломатической поддержке действий России в случае русско-турецкой войны. Со своей стороны, Россия согласилась с правом Австро-Венгрии «занять своими войсками» Боснию и Герцеговину, а также обещала воздержаться от создания на Балканах «большого славянского государства». Великобритания, дольше всех возражавшая против военного вмешательства России на Балканах, удовлетворилась ее обещанием не стремиться к захватам в Малой Азии и поддержать британские притязания на о. Кипр, которым владели турки.
С Румынией, самостоятельным государством под номинальной властью турецкого султана, возникшим после Крымской войны в результате объединения княжеств Валахия и Молдавия, Россия подписала договор о пропуске ее войск к турецкой границе на Дунае. Формально это был не союзный договор, но на его основании 9 (21) мая 1877 г. Румыния провозгласила полную независимость от Османской империи, а впоследствии и объявила ей войну. В текст договора был включен пункт об уважении территориальной неприкосновенности Румынии. Это было сделано по настоянию румынской стороны ввиду стремления России вернуть себе Южную Бессарабию, утраченную по Парижскому трактату 1856 г. и с тех пор вошедшую в состав Румынского государства. Русское правительство понимало озабоченность румын и рассчитывало предоставить им достойную компенсацию в виде Северной Добруджи — области, расположенной между нижним течением Дуная и Черным морем.
После того как султан отверг очередной проект реформ для балканских славян, 12 (24) апреля 1877 г. Россия объявила войну Турции. На стороне России кроме Румынии выступили Сербия и Черногория. Война оказалась тяжелой. Хотя турецкая армия была далеко не самой передовой в Европе, победа над ней досталась дорогой ценой. Турецкая крепость Плевна сдалась лишь после многомесячной осады. Тяжелые потери несли русские войска и болгарские ополченцы, обороняя в условиях суровой зимы Шипкинский перевал в Балканских горах.
Но масштабы победы превзошли все ожидания. На Балканском театре военных действий русские войска подошли к Стамбулу, в Закавказье — отбили у турок города Ардаган, Карс и Батум. 19 февраля (3 марта) 1878 г. в местечке Сан-Стефано близ турецкой столицы был подписан прелиминарный мир. Он закреплял независимость Румынии, Сербии и Черногории, а также предоставлял Боснии и Герцеговине автономию в составе Османской империи. Но главное — он предусматривал создание большого Болгарского княжества, которое охватывало обширную территорию между Дунаем, Охридским озером, Эгейским и Черным морями. По этому договору русские войска могли оставаться в Болгарии в течение двух лет. Ее граница с Османской империей проходила на небольшом удалении от Черноморских проливов Босфор и Дарданеллы.