13 декабря, в жестокую бурю и метель, полки генерала Гурко двинулись в поход за Балканы. Люди имели на себе довольствие на 6 дней, батареи были в 4-орудийном составе. Местные жители с ужасом смотрели на выступление русских войск, считая их обреченными на верную гибель… Переход длился целых 8 дней вместо предположенных двух. Позиция турок на Орханийском перевале была взята двойным охватом. 19 декабря гвардия, атакуя выше колен в снегу, сбила турок у Ташкисена, а 20-го у Горного Бугарова авангард IX корпуса отбил контратаку значительно сильнейшего турецкого отряда. В этот день большая часть Западного отряда расположилась в Комарцийской долине, по ту сторону Балкан. Воля генерала Гурко, энергия его офицеров и выносливость их солдат победили природу.
Перевалив Балканы, Гурко решил в первую очередь овладеть Софией для избежания повторения здесь Плевны и обеспечения своего тыла при дальнейшем наступлении на Филиппополь. 21 декабря он двинулся к сильно укрепленной Софии, 22-го рекогносцировал ее и 23-го занял ее без боя. В сочельник установлена связь с сербами, а в первый день Рождества турки атаковали Петрич, но были отбиты (в этой стычке у нас убито два генерала). Готовясь к дальнейшему наступлению, Гурко назначил своим войскам дневку в ожидании спуска с гор обозов.
Бой при Ташкисене велся по колена в снегу, в трудной горной местности и в сумерки короткого зимнего дня. Турки (4000 при 8 орудиях) были сбиты с очень сильной позиции, потеряв 800 человек. Наш урон — 562 человека (развернуто 15 000 человек с 22 орудиями). У Горного Бугарова 4000 русских с 6 орудиями отразили 9000 турок с 8 орудиями. Наш урон — 8 офицеров, 261 нижний чин. В метель с 16 на 17 декабря в Западном отряде обморожено 813 человек, из них 70 насмерть. При Петриче убиты начальник 3-й гвардейской дивизии генерал-лейтенант Каталей и командир ее 1-й бригады генерал-майор Философов.
Переход Балкан отрядом Гурко послужил сигналом к общему наступлению. 20 декабря отряд генерала Карпова сосредоточился у Княжевацких Колиб — подножия Траянова Балкана, самой дикой, суровой и неприступной части Балканских гор. Утром 23-го начался подъем гуськом по единственной имевшейся пастушьей тропе в 27-градусный мороз, причем пушки и лошадей втаскивали на кручи на руках. Трое суток длилось это восхождение. Преодолев все эти трудности, староингерманландцы, новоингерманландцы и стрелки 10-го батальона добились своего: сбили занимавший вершину турецкий отряд, и в рождественскую ночь на оледенелых вершинах победно зазвучал тропарь «Рождество Твое Христе Боже наш…». Отряд Карцева находился 26 декабря в крайне рискованном положении, между двух огней — сильных турецких укреплений Калофера и Клисуры, но смелость города берет, и весть о переходе русских через Траян навела на турок такую панику, что гарнизоны их бежали, а за ними устремилось и все мусульманское население южного склона Балкан. Спустившись с Траяна, Карпов 31 декабря снова наладил связь между Гурко и Радецким.
Тем временем генерал Радецкий просил главнокомандующего отложить операцию перехода, считая свои силы, несмотря на прибытие дивизии Скобелева, недостаточными для решительных действий. Однако великий князь не согласился на его доводы и направил к Шипке еще 30-ю пехотную дивизию и 1-ю кавалерийскую дивизию. Против войск Радецкого находилась армия Вессель-паши — 40 000 (но которую в Главной квартире расценивали всего в 15 000). Генерал Радецкий принял смелое решение — двойной охват армии Весселя колоннами Скобелева и князя Святополк-Мирского. 24 декабря началось обходное движение — переход Балкан выше пояса в снегу. 27-го князь Мирский завязал бой с турецкой армией, а 28 декабря сокрушительный удар Скобелева при Шейнове решил это генеральное сражение всей войны. Армия Весселя положила оружие в количестве 31 000 человек при 104 орудиях.