С июля основные военные действия велись возле хорошо укрепленной Плевны, которую обороняли войска Осман-паши к которой были прикованы главные силы Дунайской армии. Под Плевной наряду с русскими действовали и румынские части. В боях участвовала гвардия. Три штурма Плевны не принесли успеха. Не имея тяжелой артиллерии, войска несли большие потери. Военный министр Милютин писал царю: «Если будем по-прежнему рассчитывать на одно беспредельное самоотвержение и храбрость русского солдата, то в короткое время истребим всю нашу великолепную армию».
Главнокомандующий великий князь Николай Николаевич (старший) отказался от нового штурма и начал блокаду крепости. Военно-инженерные работы возглавил герой севастопольской обороны генерал Э. И. Тотлебен. Попытка Осман-паши вырваться из окружения потерпела неудачу, и в декабре он отдал приказ о капитуляции.
Взятие Плевны предопределило исход кампании. Пройдя по зимним балканским перевалам, части Гурко вступили в Софию. В районе Шипки в деревне Шейново Радецкий разбил и взял в плен армию Вессель-паши. Исход боя решили действия колонны генерала М. Д. Скобелева. Болгария была освобождена, турецкая армия прекратила активное сопротивление. Передовые отряды русских войск в январе 1878 г. без боя заняли Адрианополь, кавалерийские разъезды вышли к предместьям Константинополя.
К этому времени определился исход военных действий на Кавказском театре. В октябре 1877 г. русские войска разгромили турецкую армию у Аладжинских высот и осадили Каре, который турки, руководимые английскими военными инженерами, превратили в мощную крепость. В ноябре после ночного штурма Каре был взят.
Сан-Стефанский договор. В безнадежной ситуации султанское правительство прекратило военные действия и перешло к переговорам. В Адрианополе было подписано перемирие, неясность условий которого не помешала протестам Англии и Австро-Венгрии. Английские корабли вошли в Мраморное море. 19 февраля 1878 г. недалеко от Константинополя, в Сан-Стефано, был заключен прелиминарный мирный договор, который завершил русско-турецкую войну. С русской стороны его подписал Н. П. Игнатьев. Согласно Сан-Стефанскому договору Сербия, Черногория и Румыния получали независимость, провозглашалась автономия Болгарии, Боснии и Герцеговины. Границы Болгарии определялись таким образом, что она получала выход и в Черное, и в Эгейское моря. Предусматривалась выработка конституции нового княжества под наблюдением комиссара от России. Автономная Болгария получала христианское правительство и князя, который утверждался Портою с согласия европейских держав. России возвращалась Южная Бессарабия и отходили крепости на Кавказе — Каре, Ардаган, Баязет и Батум. Турция обязывалась уплатить значительную контрибуцию. Сан-Стефанский договор свидетельствовал, что Россия возвращала себе первенство на Балканах. По отношению к балканским христианским народам она выступала как держава-освободительница.
Берлинский конгресс. Против условий Сан-Стефано выступили Англия и Австро-Венгрия. Они требовали их пересмотра с участием всех великих держав. Бисмарк играл роль посредника. Россия вынуждена была согласиться на созыв конгресса в Берлине, который начал работать в июне 1878 г. Накануне велись интенсивные переговоры российских дипломатов в Лондоне и Вене, где стороны пришли к некоторому компромиссу. По секретному русско-английскому соглашению Россия отказывалась от плана создания Великой Болгарии. На Берлинском конгрессе российскую делегацию возглавляли А. М. Горчаков и посол в Лондоне П. А. Шувалов. Опасаясь оказаться в изоляции, они по многим вопросам вынуждены были согласиться на пересмотр условий Сан-Стефанского договора.
Решения Берлинского конгресса были оформлены в июле 1878 г. в трактате, который определил расстановку сил на Балканах и в Центральной Европе. Великие державы подтверждали статьи Сан-Стефано о независимости Румынии, Сербии и Черногории и об автономии Болгарии. К северу от Балканского хребта создавалось вассальное княжество с христианским правительством и национальной армией. Временное управление им сохранялось за российским комиссаром, пребывание там русских войск ограничивалось девятью месяцами. Области к югу от Балканского хребта превращались в автономную турецкую провинцию Восточная Румелия. Македонские земли отходили под власть Порты. Российская дипломатия не имела сил в одиночестве отстаивать идею Великой Болгарии. Австро-Венгрия получала право на оккупацию и административное управление Боснии и Герцеговины, гарантировалась свобода плавания торговых судов по Дунаю. Россия закрепляла за собой часть Бессарабии, Каре, Ардаган и Батум. Подтверждались положения Парижского мира 1856 г. и Лондонской конвенции 1871 г., не затронутые новым соглашением.