В соответствии с приказом югославского командования 1-й Пролетарский и 12-й ударный корпуса построили свои боевые порядки в четыре колонны. Первую колонну составлял 12-й корпус (11, 16, 28-я и 36-я ударные дивизии) под командованием генерал-майора Данилы Лекича. Она имела задачу главными силами наступать вдоль правого берега Савы, через Чукарицу и Жаркого, на Главный вокзал и Савский мост. Во вторую колонну была выделена 6-я Пролетарская дивизия под командованием полковника Джоки Иованича с задачей наступать через Топчидер в направлении на Теразие и Калемегдан. В третью колонну вошла 1-я Пролетарская дивизия под командованием полковника Васо Йовановича, которая должна была прорвать оборону противника на южной окраине города и, наступая через Баницу, Дединье на площадь Славия, пробиться в центр города, выйти к Калемегдану. Четвертую колонну составляла 5-я ударная дивизия под командованием полковника Милутина Морачи. Она имела задачу продвигаться к Калемегдану с востока в полосе между улицей Короля Александра и правым берегом Дуная. В общий резерв выделялись 21-я ударная дивизия, которая под командованием полковника Милое Милоевича сосредоточилась севернее и восточнее Авалы, в районах сел Бели-Поток, Зуце, Лештане, и 23-я ударная дивизия 14-го корпуса под командованием подполковника Миладина Ивановича и политкомиссара Воина Поповича, которая занимала район южнее Авалы.
Боевой порядок советских войск был построен в два эшелона. В первом эшелоне наступал 4-й гвардейский механизированный корпус, во втором — 73-я гвардейская и 236-я стрелковые дивизии. В центре боевого построения находилась наиболее сильная 36-я гвардейская танковая бригада.
Войска поддерживали корпусная артиллерийская группа и авиация.
Для надежного подавления обороны противника при штурме города по указанию генерал-полковника М. И. Неделина была создана крупная группировка артиллерии. Следует заметить, что количество стволов в ней беспрерывно увеличивалось. Так, если в начале штурма в бою участвовало 300 орудий и минометов, то спустя два дня их количество возросло до 633.
Для успешного авиационного обеспечения штурма Белграда требовалось в кратчайший срок перебазировать соединения 17-й воздушной армии ближе к Белграду. Выполнением этой задачи, а также организацией взаимодействия авиации и наземных войск руководил лично командующий 17-й воздушной армией генерал-полковник В. А. Судец, вылетавший для этой цели на командный пункт командира 4-го гвардейского механизированного корпуса и в районы новых аэродромов. В результате усилий командиров всех степеней, от ответственных представителей высших штабов до командиров соединений и частей Красной армии и НОАЮ, все наиболее важные вопросы, от которых зависел успешный ход и исход штурма Белграда, были тщательно отработаны.
Для борьбы с противником в городе в танковой и механизированных бригадах корпуса создавались штурмовые отряды и штурмовые группы из пехоты, артиллерии, танков, минометов, огнеметных и саперных подразделений. Каждая из бригад сформировала по одному штурмовому отряду, а мотострелковые батальоны — по 1–2 штурмовые группы. Штурмовые отряды и группы получили задачу наступать впереди своих частей или соединений, расчищая им путь. Каждый штурмовой отряд или группа имели в своем составе по роте бойцов Народно-освободительной армии.
В период выхода частей корпуса на исходные позиции в полосе предстоящего прорыва была проведена разведка боем, в результате которой удалось уточнить начертание переднего края, выявить минные поля, разведать инженерные заграждения, противотанковые рвы, а также систему огня и силы обороняющегося противника.
Во второй половине дня 14 октября 1944 года мощный грохот советской артиллерии потряс окрестности Белграда. Более 300 орудий и минометов и 24 установки гвардейских минометов обрушили свой огонь на передний край обороны противника и его опорные пункты на южной окраине города. Как только отзвучал залп «катюш», известивший об окончании артиллерийской подготовки, советские и югославские войска пошли на штурм Белграда. Наступление развивалось стремительно, и уже к исходу дня оборона противника на городском оборонительном обводе была прорвана. Штурмующие части устремились в глубь города.
В направлении Баницы и Дединье наступали 1-я Пролетарская дивизия югославской армии, 36-я гвардейская танковая и 13-я гвардейская механизированная бригады 4-го гвардейского механизированного корпуса. Пехота противника, укрывшаяся в окопах и бункерах, поддерживаемая сильным артиллерийским и минометным огнем и танками, оказывала наступавшим яростное сопротивление. После многочасового боя оборона немецких войск была сломлена. К исходу дня Баница и Дединье были освобождены. В течение ночи 1-я Пролетарская дивизия вместе с 36-й гвардейской танковой бригадой продолжала наступать в направлении площади Славия через Аутокоманду, а части 13-й гвардейской механизированной бригады — в направлении ипподрома. Особенно сильное сопротивление немцы оказали в районе Аутокоманды, парка Караджорджа и квартала больничных зданий.
К вечеру 14 октября части и подразделения 6-й Пролетарской дивизии югославской армии атаковали противника в Топчидере и после продолжительного ожесточенного боя сломили его сопротивление и заняли железнодорожную станцию Топчидер. Немецкие части были вынуждены отходить на Сеньяк и Чукарицу. Отходя, они подожгли на станции склады боеприпасов и различного военного снаряжения. Продолжая наступление, части дивизии в течение ночи заняли Топчидерскую гору, а утром 15 октября ее 2-я и 3-я Ликские бригады достигли площади Мостар, после чего начали продвигаться по улицам Князя Милоша и Сараевской в направлении квартала зданий министерств. 1-я Ликская бригада после боя за Топчидер была направлена в Чукарицу с задачей оказать поддержку соединениям 12-го ударного корпуса.
Бои в городе не утихали до утра следующего дня. Штурмовые отряды и штурмовые группы, сопровождаемые танками, артиллерией и самоходно-артиллерийскими установками, в тесном взаимодействии с югославскими частями очищали дом за домом, квартал за кварталом. Утром 15 октября в бой были введены прибывшие 73-я гвардейская и 236-я стрелковые дивизии. К исходу 15 октября штурмующим войскам удалось рассечь белградский гарнизон противника на части. 1-я и 6-я Пролетарские и 5-я ударная дивизии югославской армии, 36-я гвардейская танковая бригада и части 73-й гвардейской и 236-й стрелковых дивизий Красной армии, уничтожив сильные гарнизоны в ряде опорных пунктов противника, вышли в районе железнодорожной станции Дунай на северную окраину города. Восточная часть белградского гарнизона была отрезана от западной.
Наступавшая от Славии в направлении улицы Короля Александра 1-я Пролетарская бригада при поддержке советских танков к вечеру подошла к зданиям Народной Скупщины и Главпочтамта. Правее 3-я Пролетарская бригада в результате ожесточенного боя овладела Ташмайданом, взяв при этом в плен роту немецких солдат. 8-я Черногорская бригада 1-й Пролетарской дивизии, действуя совместно с советскими частями, успешно продвигалась вдоль улицы Короля Милана, достигла старого королевского дворца и подошла к Теразие — центральной площади Белграда.
К тому времени 14-я гвардейская механизированная бригада во взаимодействии с частями 1-й Пролетарской и 5-й ударной дивизий югославской армии овладела Вождовацем, гимназией Короля Александра, разгромила гарнизон противника в опорном пункте на заводе «Беометалл» и завязала бой в районе обсерватории на восточной окраине Белграда. Таким образом, и юго-восточная часть города оказалась также отсеченной и изолированной от других районов города. 13-я гвардейская механизированная бригада, которой оказывали помощь части 6-й Пролетарской дивизии НОАЮ, преодолевая сопротивление противника, вела наступление на Главный вокзал и мост через реку Сава на западной окраине города. С ее выходом к Главному вокзалу мост через Саву оказался бы под воздействием артиллерии советских войск, что затруднило бы переброску противником резервов в город. Всю ночь на 15 октября части бригады почти непрерывно атаковывали противника, прикрывавшего подходы к мосту через реку Сава. Из района Земуна немцы вели по боевым порядкам бригады артиллерийский огонь. В середине дня 15 октября свыше батальона немецкой пехоты, поддержанной пятью танками и артиллерией, контратаковали 3-й мотострелковый батальон бригады. Около двух часов шел упорный бой, обе стороны понесли значительные потери. Наконец противник отступил. Командир бригады полковник Сергиенко был ранен, в командование соединением вступил начальник штаба. За сутки боя части бригады глубоко вклинились в город и завязали бои за Главный вокзал. Однако по мере приближения к Главному вокзалу и к мосту сопротивление германских войск заметно возрастало. В районе Главного вокзала противник установил большое количество железобетонных колпаков, в которых размещались крупнокалиберные пулеметы и противотанковые орудия малого калибра. Гарнизоны оборонительных сооружений, как правило, не сдавались в плен и сопротивлялись до последнего солдата. Вместе с частями бригады в боях участвовал приданный ей стрелковый полк 73-й гвардейской стрелковой дивизии, а также части 6-й Пролетарской дивизии Народно-освободительной армии Югославии.