Наступавшие севернее войска Степного и Юго-Западного фронтов после упорных боев (особенно в районах Запорожья и Днепропетровска) захватили наиболее крупный плацдарм на правом берегу Днепра от Черкасс до Запорожья (450 км в длину и до 100 км в глубину). Однако настойчивые попытки прорваться в Криворожский железнорудный бассейн были остановлены к середине декабря яростным сопротивлением германских частей, которые получили подкрепления. Нижнеднепровская операция отличалась большими потерями, которые составили 754 тыс. чел. (примерно половина всех потерь советских войск в боях за Украину с августа по декабрь 1943 г.).
Тяжело проходила Киевская операция (12 октября — 23 декабря), проводимая Воронежским (1-м Украинским фронтом) под командованием генерала Н. Ф. Ватутина. Против него на киевском направлении действовала 4-я танковая армия (генерал Гот) из немецкой группы армий «Юг» (фельдмаршал Манштейн). Для взятия города были использованы два плацдарма, захваченные на правом берегу Днепра — Лютежский и Букринский (севернее и южнее Киева). Операция началась с ожесточенных боев за удержание и расширение данных плацдармов.
Первоначально наступление на Киев советское командование планировало вести из района Букрина. Однако пересеченный рельеф местности помешал наступлению войск, особенно 3-й гвардейской танковой армии генерала Рыбалко. Расширить плацдарм не удалось из-за упорного сопротивления немецких частей. Проведенная для увеличения плацдарма и борьбы с подходящими резервами немцев воздушно-десантная операция окончилась неудачей.
Тогда Ставка скрытно перебросила эту армию на Лютежский плацдарм, откуда было решено нанести главный удар. Чтобы скрыть этот маневр на Букринском плацдарме, были размещены макеты танков и орудий, настолько мастерски изготовленные, что немцы не смогли отличить подделки и наносили по ним удары артиллерии и авиации.
3 ноября советские войска начали наступление севернее Киева. Для быстрого преодоления немецкой обороны на узком участке ее прорыва в 6 км была создана невиданная концентрация артиллерии — в среднем по 380 стволов на 1 км фронта. В результате немецкая оборона на данном участке была сокрушена огнем. Для развития успеха на следующий день в прорыв была введена 3-я гвардейская танковая армия, части которой вечером того же дня перерезали шоссе Житомир — Киев. Чтобы ошеломить оборонявшихся, танки пошли в атаку с зажженными фарами и под вой сирен. Потеря транспортной артерии, через которую осуществлялась основная связь с тылом, вынудила немцев начать отход. 6 ноября Красная Армия освободила Киев. Немецкий фронт был прорван, и следом за Киевом советские соединения освободили к 13 ноября Житомир. Тем самым была создана угроза глубокого флангового охвата с севера всей немецкой группе армий «Юг» на Правобережной Украине.
Для спасения ситуации германское командование перебросило в район Житомира дополнительные силы из Западной Европы. В середине ноября немецкая группировка численностью в 15 дивизий (в том числе 9 танковых и две моторизованные) нанесла здесь мощный контрудар, пытаясь срезать киевский выступ и отбить Киев. Так началась Киевская оборонительная операция (13 ноября — 23 декабря). Число танковых и моторизованных дивизий в ней было почти таким же, как на южном участке Курской битвы. Но под Житомиром советские войска не имели столь развитой в инженерном отношении обороны. Правда, им несколько помогла наступившая в тот момент сильная осенняя распутица. Наиболее яростное противоборство разгорелось в районе Фастов — Брусилов, когда одновременно каждая из сторон бросала в атаку от 300 до 400 танков.
За 10 дней немцам удалось отбить Житомир и продвинуться вперед на 50–60 км. В случае победы они отбрасывали советские войска за Днепр и восстанавливали один из ключевых участков «Восточного вала». Этим во многом объясняется ожесточенность и интенсивность боев Киевской оборонительной операции, которую современники сравнивали по накалу с Курской битвой.
Несмотря на массированные удары танков, советские войска, пополненные резервами (в частности, тремя истребительными противотанковыми артбригадами), остановили германский натиск. В декабре немецкое наступление возобновилось (в районе Коростеня и Малина), но оно не принесло крупного успеха. К 23 декабря немцы перешли к обороне. Киев остался за советской стороной.
К концу 1943 года битва за Днепр завершилась. К тому времени «Восточный вал» на Украине был прорван почти на всем протяжении. Как в свое время польско-французский, так и теперь германский план расколоть восточное славянство по линии Днепра потерпел крах. Советские войска захватили два крупных стратегических плацдарма (от Киева до Припяти и от Черкасс до Запорожья) и десятки оперативно-тактических плацдармом. Немецкие войска не получили возможность отдохнуть и перегруппировать силы на «зимнем рубеже» под защитой крупной водной преграды.