Лейтенант Сергей Костров осенью 1941 г. попадает в плен. Продержав пленных несколько дней в подвалах разрушенного Клинского стекольного завода, их, построенных по пять человек в ряд, конвоируют по Волоколамскому шоссе. Время от времени раздаются выстрелы — это немцы пристреливают отставших раненых. Сергей идет рядом с бородатым пожилым пленным — Никифорычем, с которым он познакомился прошлой ночью. У Никифорыча в вещмешке есть и сухари, один из которых он предлагает Сергею, и мазь, которая помогает при побоях, — он намазал ею разбитый висок Сергея. Когда колонна проходит через деревеньку, старуха бросает пленным капустные листья, которые голодные пленные жадно хватают. Внезапно раздается автоматная очередь, старушка падает, падают пленные, и Никифорыч, смертельно раненный, говорит Сергею: «Возьми мешок… сын мой на тебя похож… беги…»
Сергей с колонной пленных доходит до Ржевского лагеря и лишь на седьмые сутки получает крошечный кусочек хлеба: на двенадцать человек в день выдается одна буханка хлеба весом в восемьсот граммов. Иногда пленные получают баланду, состоящую из чуть подогретой воды, забеленной отходами овсяной муки. Каждое утро из барака выносят умерших за ночь.
У Сергея начинается тиф, и его, больного, с температурой за сорок, обитатели барака сбрасывают с верхних нар, чтобы занять хорошее место: «все равно умрет». Однако через двое суток Сергей выползает из-под нижних нар, волоча правую отнявшуюся ногу, и бессильным шепотом просит освободить его место. В этот момент в барак входит человек в белом халате — это доктор Владимир Иванович Лукин. Он переводит Сергея в другой барак, где за загородкой лежит около двадцати командиров, больных тифом; приносит ему бутылку спирту и велит растирать бесчувственную ногу. Через несколько недель Сергей уже может на ногу наступать. Доктор, работая в лагерной амбулатории, осторожно выискивает среди пленных в доску своих людей с тем, чтобы устроить к лету побег большой вооруженной группой. Но выходит иначе: пленных командиров, в их числе и Сергея, переводят в другой лагерь — в Смоленск.
Сергей с новым своим приятелем Николаевым и здесь постоянно ищет случая бежать, но случай все не представляется. Пленных опять куда-то везут, и на этот раз, видимо, далеко: каждому выдают по целой буханке хлеба из опилок, что составляет четырехдневную норму. Их грузят в герметически закрывающиеся, без окон, вагоны, и к вечеру четвертого дня состав прибывает в Каунас. Колонну пленных у входа в лагерь встречают вооруженные железными лопатками эсэсовцы, которые с гиканьем набрасываются на изможденных пленных и начинают лопатами их рубить. На глазах у Сергея погибает Николаев.
Через несколько дней конвоиры выводят сто человек пленных на работу за пределы лагеря; Сергей и еще один пленный, совсем еще мальчик, по имени Ванюшка, пытаются бежать, но их настигают конвойные и жестоко избивают. После четырнадцати дней карцера Сергея и Ванюшку отправляют в штрафной лагерь, расположенный недалеко от Риги — Саласпилсский лагерь «Долина смерти». Сергей и Ванюшка и здесь не оставляют надежды на побег. Но через несколько дней их отправляют в Германию. И тут, сбив решетки с вагонного окна, Сергей и Ванюшка на полном ходу выпрыгивают из вагона. Оба чудом остаются в живых, и начинаются их скитания по лесам Литвы. Они идут ночами, держа путь на восток. Время от времени беглецы заходят в дома — попросить еды. На случай, если вдруг окажется, что в доме живут полицейские, в карманах у них всегда лежат круглые большие камни-голыши. В одном доме девушка-работница дает им домашнего сыру, в другом — хлеба, сала, спички.
Однажды, в день, когда Ванюшке исполнилось семнадцать лет, они решают устроить себе «праздник»: попросить картошки в стоящем на опушке леса домике, сварить её с грибами и отдохнуть не два часа, как обычно, а три. Ванюшка отправляется за картошкой, а Сергей собирает грибы. Спустя некоторое время Сергей, обеспокоенный отсутствием Ванюшки, по-пластунски подползает к дому, заглядывает в окно, видит, что Ванюшки там нет, и понимает, что он лежит в доме связанный! Сергей решает поджечь дом, чтобы избавить Ванюшку от неизбежных пыток в гестапо.
Две недели Сергей идет один. Добывая еду, он пользуется уловкой, которая не раз спасала ему жизнь: входя в дом, он просит хлеба на восьмерых: «Семь моих товарищей стоят за домом». Но вот наступает осень, все сильнее болит нога, все меньше и меньше удается пройти за ночь. И однажды Сергей не успевает спрятаться на дневку, его задерживают полицейские и доставляют в Субачайскую тюрьму, а затем переводят в тюрьму Паневежисскую. Здесь в одной камере с Сергеем сидят русские, которые, судя по его внешнему виду, предполагают, что ему лет сорок, тогда как ему нет еще и двадцати трех. Несколько раз Сергея водят на допросы в гестапо, его бьют, он теряет сознание, его опять допрашивают и опять бьют; у него хотят узнать, откуда он шел, с кем, кто из крестьян давал ему еду. Сергей придумывает себе новое имя — Петр Руссиновский — и отвечает, что ни в каком лагере он не был, а сбежал сразу же, как попал в плен.
Сергей и его новые друзья Мотякин и Устинов, до тюрьмы партизанившие в литовских лесах, задумывают побег. Пленные работают на территории сахарного завода на разгрузке вагонов; Сергей забрасывает свеклой спрятавшихся в бурт Мотякина и Устинова, а сам прячется под вагоном, устроившись там на тормозных тросах. Обнаружив в конце рабочего дня исчезновение троих пленных, конвойные, бросившись их искать, находят Сергея: его выдает некстати размотавшаяся и свесившаяся из-под вагона портянка. На вопрос конвойных о ненайденных товарищах Сергей отвечает, что они уехали под вагонами. На самом же деле, в соответствии с разработанным планом, они должны попытаться ночью перелезть через забор и уйти в лес.
После неудавшегося побега Сергея переводят в Шяуляйскую тюрьму, а затем в Шяуляйский лагерь военнопленных. Идет уже весна 1943 г. Сергей начинает обдумывать план нового побега.