Днем ранее, 27 декабря, дивизия «Лейбштандарте» заняла оборону восточнее Бердичева. 28 декабря через ее боевые порядки прошла 1-я танковая дивизия и двинулась по направлению к Казатину с целью отбить его. 7-я танковая дивизия еще не успела подойти с севера. В результате в районе Бердичев — Казатин немцы имели менее 100 танков (всего 48-й танковый корпус насчитывал до 150 машин), 1-й Украинский фронт в районе Казатина насчитывал около 500 танков.
29 декабря развернулось тяжелое сражение. 1 -я танковая дивизия натолкнулась на значительно превосходящие силы русских и начала отход к Бердичеву. 1 -я гвардейская ТА силами около 200 танков атаковала позиции «Лейбштандарте» у Бердичева. Несмотря на потерю до 70 машин, советским танкистам в ряде мест удалось прорвать рубеж обороны немецкой дивизии и прорваться в город.
Оценив силы атакующих, командир 48-го ТК Герман Бальк (которого Ф. Меллентин считает лучшим тактиком Второй мировой войны) очень быстро перестроил свою оборону — он сократил протяженность фронта, подтянул к «Лейбштандарту» 1-ю танковую дивизию и отвел их на новый оборонительный рубеж по обе стороны от Бердичева. В результате части Катукова хоть и проникли местами в город, не смогли ни овладеть им, ни развить наступление дальше. 30 декабря советская 1-я танковая армия в бесплодных атаках потеряла еще 32 танка, но не поколебала фронт 48-го ТК ни на йоту.
«31 декабря русские предприняли ожесточенные атаки значительными силами, в ходе которых они потеряли 62 танка. В этих боях мы имели возможность еще раз убедиться, что за танками русских уже больше не наступает многочисленная пехота.
Благодаря умелому и уверенному руководству действиями со стороны командующего 4-й танковой армией генерал-полковника Рауса опасное положение было ликвидировано. Хотя русские сумели 31 декабря овладеть Житомиром, а 3 января выйти на границу 1939 года с Польшей, их наступательный порыв иссяк. Оборона немецких войск в Западной Украине все еше проходила в основном по прежним рубежам» (
Несмотря на то что Бердичев остался за советскими войсками, им не удалось потеснить оборону 4-й ТА немцев. Судьбу же города решили вовсе не войска Катукова, а части 3-й гвардейской ТА Рыбалко, повернутые по приказу Н.Ф. Ватутина на Бердичев. Именно ее выход в тыл 48-го ТК вынудил Балька отвести свои дивизии западнее и только после этого 305-я стрелковая дивизия и 44-я гвардейская танковая бригада советской 1-й танковой армии , воспользовавшись этим, утром 5-го января 1944 года вошли в Бердичев.
В то самое время, когда Ватутин разворачивал свое наступление на Бердичев, в ставке Гитлера 27 декабря 1943 года состоялось совещание, решившее, в конечном итоге, судьбу Правобережной Украины. На этом совещании Манштейн предложил отвести поиска из излучины Днепра и оставить Никополь. Эта мера по-шолила бы сократить фронт на 200 км. Гитлер отказал, сославшись на то, что подобное отступление будет означать потерю Крыма. На заявление Цейтлера о том, что Крым и так уже фактически потерян, фюрер никак не отреагировал.
Стороны сошлись на том, что «русские должны когда-нибудь выдохнуться», но разделились по вариантам стратегии. Командование группы «Юг» предлагало гибко реагировать на активность советских войск и не позволять им уничтожать немецкие войска it опасных выступах. Этот принцип — «эластичная оборона», предусматривал размещение на переднем крае только передового охранения, тогда как главная оборонительная позиция создавалась глубже, вне зоны действия артиллерийского огня противника. Наличную артиллерию следовало не распределять по фронту равномерно, а свести в группы, из самоходных установок и противотанковых батарей создать подвижные резервы, которые можно было бы быстро перебросить на любой участок.