После форсирования Дуная русские войска приступили к развитию наступления за Балканы в направлении к Константинополю. Необходимо было незамедлительно овладеть проходами через Балканский хребет. На плацдарме было образовано три отряда: Передовой, Восточный и Западный. Передовой отряд под командованием генерала Гурко 5 июля подошел с юга к перевалу Шипка, который был занят 5-тысячным турецким отрядом Хулюсси-паши. В то же время с северной стороны Шипку атаковал отряд генерала Святополка-Мирского, но потерпел неудачу. На следующий день Гурко снова предпринял атаку, но и она была отбита. Однако, Хулюсси-паша посчитал свое положение опасным и отошел в ночь на 7 июля в Калофер.
Шипку немедленно заняли войска Святополка-Мирского, она вошла в район южного фронта русской армии, вверенного охране войск генерала Радецкого. Занятая позиция была тактически неудобна. Русские войска растянулись на несколько верст в глубину по узкому (25 — 30 верст) гребню. Армия подвергалась перекрестному огню на всем протяжении с соседних господствующих высот, при этом не было ни естественных прикрытий, ни удобных позиций для перехода в наступление. Необходимость во что бы то ни стало удерживать этот проход, однако, оставалась.
До войны 1877 — 1878 гг. русские войска не раз проходили через Шипку
Радецкий получил тревожные известия об усилении турецких войск против русской армии в районе городов Елены и Златарицы. Он опасался перехода Сулеймана-паши в северную Болгарию и наступления на Тырнов. Радецкий отправил резерв 8 августа к Еленам и Златарице, таким образом удалившись от Шипки на 3 — 4 больших перехода. Сулейман же после отхода Гурко решил овладеть Шипкой и сконцентрировал против нее 28 тысяч солдат и 36 орудий. На перевале к тому моменту находился только Орловский пехотный полк и болгарские дружины, что равнялось 4 тысячам человек. Вскоре подоспел Брянский полк и численность возросла до 6 тысяч человек при 27 орудиях. 9 августа турки открыли огонь с горы Малый Бедек. Бой длился весь день, русские войска успешно отбивали все атаки. На следующий день турки не возобновляли атак, все дело ограничивалось артиллерийской перестрелкой. Тем временем Радецкий получил известия о ситуации на Шипке и двинул туда общий резерв. Однако, даже на пределе своих возможностей они достигли бы места только 11 числа. Также на помощь вышла пехотная бригада с батареей из Сельви, но они могли прибыть только через день. 11 августа стало самым критическим днем для защитников Шипки.
С рассветом начался бой, русские войска были охвачены противниками с трех сторон. Атаки турок отбивались и возобновлялись с усиленным упорством. Неприятели попытались зайти в тыл русских войск, но были отброшены. К вечеру турки угрожали прорвать центральную часть позиции и овладели Боковой горкой. Положение защитников было почти безнадежным, но тут подоспела часть резерва, которую тут же выдвинули к Боковой горке. Они сумели отбить позицию, а затем подоспели и остальные батальоны, которые остановили напор турок на других направлениях. Русские войска удержались на Шипке, но турки находились от них лишь в нескольких сотнях шагов.
Фраза «на Шипке все спокойно» стала крылатой
Ночью 12 августа подоспела 2-я бригада 14-й пехотной дивизии. Теперь Радецкий располагал 20,5 батальонами и 38 орудиями. Он решил при усилении позиций пойти в наступление и сбросить турок с Лесного кургана и Лысой горы. Лесной курган поначалу удалось отбить, но уже через несколько дней ожесточенных боев русские войска были вынуждены отступить. За шесть дней боев на Шипке русские потеряли 3350 человек, в том числе 108 офицеров, потери турков были в два раза больше. Обе стороны остались на своих позициях, но положение русской армии, окруженной с трех сторон неприятелем, ухудшилось с наступлением осенних холодов.
15 августа Шипку заняли 14-я пехотная дивизия и 4-я стрелковая бригада под началом генерала Петрушевского. Наиболее пострадавшие Орловский и Брянские полки отвели в резерв, а болгарские дружины перевели к деревне Зелено Древо. С этого периода началось «шипкинское сидение», которое стало одним из самых тяжелых эпизодов русско-турецкой войны. Защитники Шипки заняли оборонительную позицию, их целью было укрепиться и обустроить сообщение с тылом. Турки непрерывно осыпали их снарядами и пулями.
Ночью 5 сентября неприятель предпринял новую атаку и овладел Орлиным гнездом — скалистым мысом перед горой св. Николая. Выбить их оттуда удалось только после отчаянной и ожесточенной рукопашной схватки. Новых атак турки затем не предпринимали, а ограничивались обстрелом. С приходом зимы положение российских войск стало еще хуже: наступившие морозы на вершинах горы были особенно чувствительны. Почти 10 тысяч солдат буквально растаяли из-за болезней, в то время как убито и ранено было только 700. Окончанием «шипкинского сидения» стал последний ожесточенный бой с турками на дороге от горы св. Николая к Шипке (битва при Шейново). После падения Плевны численность войск Радецкого возросла до 45 тысяч человек, но даже с учетом увеличения числа сил атака армии Вессель-паши была рискованной.
Атаковать было решено 24 декабря двумя колоннами, которые должны были совершить обходной маневр: 19-тысячная армия Святополка-Мирского пошла через Тревненский перевал, а 16 тысяч Михаила Скобелева — через Имитлийский. У Радецкого оставалось 11 тысяч человек на шипкинских позициях. 26 декабря, преодолевая тяжелые погодные условия, пробираясь сквозь снег и отбивая атаки турок, колонны достигли своих намеченных позиций.
На Шипке сохраняется русское кладбище
Утром 27 декабря Святополк-Мирский начал атаку на восточный фронт турецкого лагеря. К обеду русские войска смогли захватить первую линию вражеских укреплений. Путь отступления к Адрианополю для османов оказался отрезанным. Войска западной колонны продолжали сбивать турок с высот, но поскольку не все силы успели перейти горы, Скобелев не решился идти в атаку. На следующий день противник перешел в контрнаступление против Святополка-Мирского, но был отброшен. Русские войска захватили Шипку и несколько укреплений. Дальше атаковать восточная колонна не решилась, поскольку войска Скобелева еще не начали наступление.
Святополк-Мирский отправил Радецкому донесение о положении дел и тот решил ударить во фронт турецких позиций о оттянуть часть их сил на себя. «…В 11 часов утра генерал Радецкий, решив, что «пора кончать», призвал к себе командующего Подольским полком генерала Духонина и дал ему прочесть телеграмму, полученную ночью от князя Святополк-Мирского; в этой депеше, сколько помнится, говорилось, что войска левой колонны дрались весь день 27 декабря отчаянно… и понесли очень большой урон выбывшими из строя, и затем отряд этот со слабыми силами, в крайне рискованном положении, все еще удерживается на самом близком расстоянии от неприятеля и взывает о содействии ему помощи Когда эта депеша была прочтена, генерал Радецкий объявил, что он не ожидал, что придется нам атаковать с фронта, но так как настала минута выручить товарищей, погибающих внизу, то надо помочь им, хотя бы ценою атаки Шипки в лоб…».
Войска двинулись с горы св. Николая по узкой обледенелой дороге под неустанным огнем со стороны противника. Дойдя до первой линии вражеских окопов, они вынуждены были отступить, но цели достигли — значительные силы турецкой армии и артиллерии были отвлечены и не могли использоваться для контрудара против Святополка-Мирского. В 11 утра атаку начал и Скобелев, о чем не знал Радецкий. Вскоре его войска ворвались в середину укрепленного лагеря, одновременно с этим армия Святополка-Мирского возобновила наступление. Около 3 часов турки осознали, что дальнейшее сопротивление невозможно и решили капитулировать. Те турецкие отряды, что удерживали позиции в горах, тоже получили приказ сдаться. В результате этого сражения русская армия потеряла 5,7 тысяч человек, а армия Вессель-паши перестала существовать: только 23 тысячи человек были взяты в плен. В итоге сражение за Шипку стало одним из ключевых эпизодов войны и позволило открыть путь на Адрианополь и Константинополь.