Войска Сербского княжества наступали в четырёх направлениях: через реку Дрину в сторону Боснии, через гору Явор к Рашской области, долиной Моравы к Нишу и Пироту и через Тимок к современной Болгарии. Войска Черногории встали против турок на герцеговинском фронте. Ожидалось, что восстание вспыхнет и среди болгар. Между тем уже первые ратные дни показали, что Сербия вошла в войну неподготовленной ни в военном, ни в финансовом отношениях. Недоставало всего: солдат, военного опыта, оружия и амуниции, продовольствия. Бедственное положение сербского войска вызвало волну патриотизма в России. Воодушевлённые славянофильскими идеями, на Балканы потянулись русские добровольцы во главе с прославленным генералом Михаилом Григорьевичем Черняевым. Через славянофильские русские комитеты в Сербию шла материальная помощь. Академик М. Экмечич отмечает, что в то время «только русские добровольцы были в сербской армии ядром военного опыта» – 2 844 добровольца и 644 офицера. Сербские описания войны оставили многочисленные свидетельства о русских добровольцах в белых рубашках с обнажёнными саблями в толпах неопытных сербских крестьян. Те были привычны к партизанской войне с её засадами, но не знали метода ведения современного боя, в котором воинская единица должна быть натренированна и дисциплинированна. На стороне сербов этого могли достичь только русские добровольцы. То, что должно было бы быть дополнительной поддержкой, на самом деле представляло ядро армии, так как число русских офицеров-добровольцев в действительности превосходило величину тогдашнего сербского офицерского корпуса. Уже в октябре 1876 г. сербы проиграли сражение близ местечка Джунис на моравском фронте. Бой у Джуниса вызвал спор между сербскими официальными лицами и русскими добровольцами о том, кто является виновником поражения. Сербы обвиняли генерала Черняева в плохой стратегически-тактической подготовке, а русские упрекали сербов в трусости и малодушии, что привело к всеобщему бегству сербских солдат с укреплённых позиций. Всё в этом сербско-русском споре 1876 г. напоминало пробуждение из состояния юношеской влюблённости. Идеалистический пафос не позволял русским славянофилам раньше увидеть реальную военную силу, низкую боевую дисциплину и мораль молодого и неопытного сербского войска, в то время как неподготовленные сербы с наивной детской верой ожидали от небольшого количества русских добровольцев военного чуда.
Петербург сначала относился к русскому добровольческому движению на Балканах отрицательно, но общественное мнение и волна патриотизма, охватившая всё общество, заставили официальные власти изменить свою позицию. Сербию от полной катастрофы, а князя Милана от личного поражения спас русский ультиматум Порте. В нём говорилось, что Россия в 48 часов отзовёт своего посла из Царьграда, если Турция немедленно не заключит перемирия с Сербией. 21 февраля 1877 г. Турция заключила с Сербией мир на условиях довоенного положения.
12 апреля 1877 г. в войну с Турцией вступила Россия. Несмотря на русские призывы, в которых подчёркивалось, что «сотрудничество сербского войска было бы особенно полезным в настоящем моменте», Сербия вошла в войну с известным запозданием, лишь 1 декабря 1877 г., спустя три дня после славной русской победы над турками в битве под Плевной. Для лучшей подготовки к войне Россия послала сербам полмиллиона рублей. В этой войне реорганизованное и хорошо вооружённое сербское войско показало совсем другое лицо – лицо победителей. Князь Милан в этой войне постоянно был на фронте, постигая военное искусство. Ключевым моментом стало вхождение генерала Белимарковича в Ниш. Потом один за другим были освобождены сербские города в долине южной Моравы и Нишавы – Лесковац, Вране и Пирот. В победоносном марше сербские войска освободили город Гнилане в Косовском Поморавле и вышли на Косово Поле, где в 1389 г. произошла славная Косовская битва.
Перемена политического курса князя. По Сан-Стефанскому мирному договору, подписанному Россией и Турцией 19 февраля 1878 г., Сербия и Черногория получили полную независимость от султана, а Босния и Герцеговина – автономию. Однако Сербия не получала тех земель, которые освободила во время войны. Бороться за решение этого вопроса Сербия продолжила на Берлинском конгрессе.