Дія починається в липні 1942 р з відступу під Осколом. Німці підійшли до Воронежа, і від щойно виритих оборонних укріплень полк відходить без єдиного пострілу, а перший батальйон на чолі з комбатом Ширяєвим залишається для прикриття. На допомогу комбату залишається і головний герой оповідання лейтенант Керженцев. Відлежав покладені два дні, знімається і перший батальйон. По дорозі вони несподівано зустрічають зв'язкового штабу і друга Керженцева хіміка Ігоря Свідерського зі звісткою про те, що полк розбитий, треба міняти маршрут і йти на з'єднання з ним, а німці все в десяти кілометрах. Вони йдуть ще день, поки не розташовуються в напівзруйнованих сараях. Там і застають їх німці. Батальйон займає оборону. Багато втрат. Ширяєв з чотирнадцятьма бійцями йде, а Керженцев з ординарцем Валега, Ігор, Сєдих і зв'язковий штабу Лазаренко залишаються прикривати їх. Лазаренко вбивають, а інші благополучно залишають сарай і наздоганяють своїх. Це неважко, так як по дорозі тягнуться відступаючі безладно частини. Вони намагаються шукати своїх: полк, дивізію, армію, але це неможливо. Відступ. Переправа через Дон. Так вони доходять до Сталінграда.
У Сталінграді вони зупиняються у Марії Кузьмівни, сестри колишнього Ігоревого командира роти в запасному полку, і гояться давно забутої мирним життям. Розмови з господинею і її чоловіком Миколою Миколайовичем, чай з варенням, прогулянки з сусідської дівчиною Люсею, яка нагадує Юрію Керженцева про його коханої, теж Люсі, купання в Волзі, бібліотека - все це справжня мирне життя. Ігор видає себе за сапера і разом з Керженцева потрапляє в резерв, до групи особливого призначення. Їх робота - підготувати до вибуху промислові об'єкти міста. Але мирне життя несподівано переривається повітряної тривогою і двогодинної бомбардуванням - німець почав наступ на Сталінград.
Саперів відправляють на тракторний завод під Сталінград. Там йде довга, кропітка підготовка заводу до вибуху. По кілька разів на день доводиться лагодити ланцюг, порвану при черговому обстрілі. У проміжках між чергуваннями Ігор веде суперечки з Георгієм Акимовичем, інженером-електриком ТЕЦ. Георгій Акимович обурений невмінням російських воювати: «Німці від самого Берліна до Сталінграда на автомашинах доїхали, а ми ось в піджаках і спецівках в окопах лежимо з трёхлінейкой зразка дев'яносто першого року». Георгій Акимович вважає, що врятувати російських може тільки диво. Керженцев згадує недавню розмову солдатів про свою землю, «жирної, як масло, про хлібах, з головою закривають тебе». Він не знає, як це назвати. Толстой називав це «прихованою теплотою патріотизму». «Можливо, це і є те диво, якого так чекає Георгій Акимович, диво більш сильне, ніж німецька організованість і танки з чорними хрестами».
Місто бомблять вже десять днів, напевно, від нього вже нічого не залишилося, а наказу про вибух все немає. Так і не дочекавшись наказу про вибух, сапери резервного відправляються на нове призначення - в штаб фронту, в інженерний відділ, на ту сторону Волги. У штабі вони отримують призначення, і Керженцева доводиться розлучитися з Ігорем. Його направляють в 184-ю дивізію. Він зустрічає свій перший батальйон і переправляється з ним на той берег. Берег весь охоплений полум'ям.
Батальйон відразу ж вплутується в бій. Комбат гине, і Керженцев приймає командування батальйоном. У його розпорядженні четверта і п'ята роти і взвод піших розвідників під командуванням старшини Чумака. Його позиції - завод «Метиз». Тут вони затримуються надовго. День починається з ранкової канонади. Потім «сабантуй» або атака. Проходить вересень, починається жовтень.
Батальйон перекидають на більш прострілюються позиції між «Метиз» і кінцем яру на Мамаєвому. Командир полку майор Бородін залучає Керженцева для саперних робіт і будівництва землянки в допомогу своєму сапери лейтенанту Лісагору. У батальйоні всього тридцять шість чоловік замість покладених чотирьохсот, і ділянка, невеликий для нормального батальйону, представляє серйозну проблему. Бійці починають рити окопи, сапери встановлюють міни. Але тут же виявляється, що позиції треба міняти: на КП приходить полковник, комдив, і наказує зайняти сопку, де розташовуються кулемети противника. На допомогу дадуть розвідників, а Чуйков обіцяв «кукурудзники». Час перед атакою тягнеться повільно. Керженцев виставляє з КП прийшли з перевіркою політотдельщіков і несподівано для себе сам відправляється в атаку.
Сопку взяли, і це виявилося не дуже складно: дванадцять із чотирнадцяти бійців залишилися живі. Вони сидять в німецькому бліндажі з командир роти Карнаухова і командиром розвідників Чумаком, недавнім противником Керженцева, і обговорюють бій. Але тут виявляється, що вони відрізані від батальйону. Вони займають кругову оборону. Несподівано в бліндажі з'являється ординарець Керженцева Валега, що залишався на КП, так як за три дні до атаки він підвернув ногу. Він приносить тушонку і записку від старшого ад'ютанта Харламова: атака повинна бути в 4.00.
Атака не вдається. Все більше людей помирає - від ран і прямого попадання. Надії вижити немає, але свої все-таки прориваються до них. На Керженцева налітає Ширяєв, який отримав призначення комбата замість Керженцева. Керженцев здає батальйон і перебирається до Лісагору. Перший час вони байдикують, ходять в гості до Чумаку, Ширяєва, Карнаухова. Вперше за півтора місяця знайомства Керженцев розмовляє про життя з командир роти його колишнього батальйону Фарбер. Це тип інтелігента на війні, інтелігента, який не дуже добре вміє командувати довіреної йому ротою, але відчуває свою відповідальність за все, що він не навчився робити вчасно.
Дев'ятнадцятого листопада біля Керженцева іменини. Намічається свято, але зривається через загальне настання по всьому фронту. Підготувавши КП майору Бородіну, Керженцев відпускає саперів з Лісагор на берег, а сам за наказом майора йде в свій колишній батальйон. Ширяєв придумав, як взяти ходи сполучення, і майор згоден з військовою хитрістю, яка збереже людей. Але начштабу капітан Абросимов наполягає на атаці «в лоб». Він є на КП Ширяєва слідом за Керженцева і відправляє батальйон в атаку, не слухаючи доводів.
Керженцев йде в атаку разом з солдатами. Вони відразу потрапляють під кулі і залягають в воронках. Після дев'яти годин, проведених у воронці, Керженцева вдається дістатися до своїх. Батальйон втратив двадцять шість чоловік, майже половину. Загинув Карнаухов. Поранений, потрапляє в медсанбат Ширяєв. Командування батальйоном приймає Фарбер. Він єдиний з командирів не брав участі в атаці. Абросимов залишив його при собі.
На наступний день відбувся суд над Абросимовим. Майор Бородін каже на суді, що довіряв своєму начальнику штабу, але той обдурив командира полку, «він перевищив владу, а люди загинули». Потім кажуть ще кілька людей. Абросимов вважає, що мав рацію, тільки масованою атакою можна було взяти баки. «Комбати бережуть людей, тому не люблять атак. Баки можна було тільки атакою взяти. І він не винен, що люди недобросовісно до цього поставилися, злякалися ». І тоді піднімається Фарбер. Він не вміє говорити, але він знає, що не злякалися ті, хто загинув у цій атаці. «Хоробрість не в тому, щоб з голими грудьми на кулемет йти» ... Наказ був «не атакувати, а опанувати». Придуманий Ширяєвим прийом зберіг би людей, а зараз їх немає ...
Абросимова розжалували в штрафний батальйон, і він іде, ні з ким не прощаючись. А за Фарбера Керженцев тепер спокійний. Вночі приходять довгоочікувані танки. Керженцев намагається надолужити упущені іменини, але знову наступ. Прибігає вирвався з медсанбату Ширяєв, тепер начштабу, починається бій. У цьому бою Керженцева ранять, і він потрапляє в медсанбат. З медсанбату він повертається під Сталінград, «додому», зустрічає Сєдих, дізнається, що Ігор живий, збирається до нього ввечері і знову не встигає: їх перекидають для боїв з Північною угрупованням. Йде наступ.