К началу войны в русской армии уже ощущались некоторые последствия военных реформ, однако до их завершения было еще далеко. Русские войска не имели хорошо обученных резервов, по качеству стрелкового оружия уступали турецкой армии (вооружавшейся с помощью Англии и США), по численности русский флот уступал турецкому. Однако артиллерия русских превосходила турецкую, русские суда использовали мины, а русские солдаты и матросы намного превосходили турецких как выучкой, так и высоким боевым духом.
Главнокомандующим Дунайской армией был назначен брат царя великий князь Николай Николаевич, придерживавшийся консервативных взглядов на способы ведения войны. Высший командный состав армии не понимал особенностей современной войны, действовал нерешительно, допуская грубые просчеты. В то же время уже в ходе войны выдвинулась плеяда талантливых генералов — сторонников преобразований в армии (И. В. Гурко, М. И. Драгомиров, М. Д. Скобелев, Н. Г. Столетов, Ф. Ф. Радецкий), они находили поддержку в лице военного министра Д. А. Милютина. Все чаще стали использоваться стрелковые цепи, перебежки, самоокапывание солдат.
Турецкая армия в целом уступала русской, она не была готова к наступательным действиям и предпочитала оборонительные сражения. Планы ведения войны со стороны русского командования были подготовлены Н. Н. Обручевым и ДА. Милютиным. Они предполагали быстрый прорыв через Балканы и дальнейшее движение в направлении Константинополя, через территории, на которых проживало сочувствующее русским болгарское население. Политической целью ставилось освобождение Балканского полуострова от турецкого владычества.
Турецкое командование предполагало втянуть русских в изнурительную войну, не пустить их далее хорошо укрепленных крепостей Варны, Рущука, Силистрии и Шумлы и, выиграв время, получить поддержку европейских стран.
Активные военные действия начались в июне 1877 г. форсированием Дуная (в районе Зимницы-Систова). Преодолев Дунай, русская армия начала наступление в трех направлениях: западный отряд (под командованием Н. П. Криденера), захватив крепость Никополь, двинулся на Плевну; восточный, «Рущукский» отряд (под командованием наследника престола Александра Александровича) шел на Рущук. Главный удар был нанесен в центре, на южном направлении, силами отряда И. В. Гурко. Отряд Гурко вместе с Радецким комбинированным ударом выбил турок с Шипкинского перевала и начал движение в Южную Болгарию. Однако из-за ограниченности сил отряд Гурко не смог удержать взятые им города Южной Болгарии и под давлением превосходящих сил Сулеймана-паши в середине августа отступил за Балканы, оставив за собой важный в стратегическом отношении Шип-кинский перевал. В течение трех суток небольшой русско-болгарский отряд героически удерживал Шипку до подхода бригады Радецкого и дивизии Драгомирова. Шипка осталась в руках русской армии.
Наиболее напряженное положение сложилось в ходе войны на западном направлении. Медлительность Криденера привела к тому, что крупный турецкий отряд под командованием единственного талантливого турецкого полководца Османа-паши раньше русских сумел подойти к хорошо укрепленной Плевне. Первая попытка русских войск взять Плевну штурмом (8 (20) июля 1877 г.) не была подготовлена и провалилась. 18 (30) июля начался второй штурм Плевны. Русские колонны, направленные против полевых укреплений, понесли крупные потери и вновь отступили. Оказался неудачным и третий штурм 30 августа (11 сентября), который приурочили ко дню царских именин. Прибывший под Плевну крупнейший авторитет в русской армии по инженерным вопросам Э. И. Тотлебен (один из героев обороны Севастополя в годы Крымской войны) и ДА. Милютин настояли на изменении тактики. Русские войска перешли к осаде Плевны, и турецкие войска, испытывавшие недостаток в продовольствии, после неудачной попытки прорыва были вынуждены капитулировать 28 ноября (10 декабря).
Успехи под Плевной коренным образом изменили ход войны. Была ликвидирована возможность удара по флангу русской армии, высвободились крупные части, которые могли теперь перейти в наступление на главном направлении.
В конце декабря отряд под командованием Гурко двинулся по обледеневшим перевалам на Софию и в начале января захватил ее. В руки наступающей русской армии попали огромные склады турецких войск.
Через несколько дней произошло сражение под Шипкой — Шейново, в котором русские войска под командованием Ф. Ф. Радецкого и М. Д. Скобелева окружили и заставили капитулировать турецкую армию под командованием Весселя-паши. Таким образом дорога на Константинополь была открыта. В сражении под Пловдивом турецкой армии было нанесено окончательное поражение, русские войска без боя взяли Адрианополь, а преследующая турок русская кавалерия вышла на побережье Мраморного моря.