Действие происходит первой послевоенной весной, в конце марта, на Верхнем Дону. Рассказчик вместе с товарищем едет в станицу Букановскую. По дороге он встречается с Андреем Соколовым, ведущим за руку мальчика лет пяти или шести. Пока повествователь ждет лодку, новый знакомый рассказывает ему о своей жизни.
Уроженец Воронежской губернии, в Гражданскую войну он воевал в Красной Армии, затем в тысяча девятьсот двадцать втором году отправился работать на Кубань, поэтому и остался в живых, а его отец с матерью и сестрой умерли от голода. Через год он вернулся в Воронеж, пошел на завод слесарем. Вскоре женился на сироте Ирине, которая воспитывалась в детском доме. В семье у них было полное взаимопонимание. Сначала родился сын, потом две девочки. Далее герой увлекся машинами, изучил автодело, стал работать шофером. Проработав десять лет, построили они небольшой домик и жили не хуже других людей. Но участок им отвели недалеко от авиазавода, что в дальнейшем сыграло роковую роль в судьбе его семьи.
Началась война. На второй день пришла повестка из военкомата, а на третий надо было ехать на фронт. Вся семья провожала Андрея. Жена, плача, сказала, что они не увидятся больше на этом свете. Тогда Соколов даже рассердился на нее.
Но ему не пришлось и года повоевать. В мае сорок второго года он попал в плен. Немцы в то время наступали. Соколов повез на машине снаряды к своим, но не доехал, а когда пришел в себя после взрыва, оказался в окружении. Вместе с колонной других пленных из его дивизии их погнали в лагерь.
В полночь они пришли в какое-то полусожженное село. Ночевать их загнали в разрушенную церковь. Андрей услышал рядом с собой тихий разговор. Один солдат собирался утром выдать своего взводного командира, указав, что тот – коммунист. На рассвете Соколов задушил предателя, возмущенный его подлостью.
За два года плена Андрей объехал половину Германии. Однажды вместе с другими советскими военнопленными его перебросили в лагерь недалеко от Дрездена, где они работали на каменном карьере, вручную дробя камни. Была установлена норма – четыре кубометра в день на душу. Придя с работы в барак, Андрей возмутился по этому поводу, и кто-то донес об этом коменданту лагеря Мюллеру, который на другой день вызвал Соколова к себе. В комендантской за столом сидело все лагерное начальство. Но Андрей вел себя достойно, проявив смелость и мужество, отказался пить за победу немецкого оружия, хотя ему угрожал расстрел. За то, что Соколов даже в такой ситуации сохранил свое достоинство и человеческую гордость, комендант сохранил ему жизнь, назвав его настоящим русским храбрым солдатом, при этом еще наградил его буханкой хлеба и куском сала, которыми Соколов поделился со своими товарищами.
Затем его вместе с другими пленными перебросили на осушку болот, потом в Рурскую область на шахты. Далее в город Потсдам, где у немцев была контора по строительству дорог и оборонительных сооружений. Там Андрей возил немецкого инженера в чине майора армии из Потсдама в Берлин и обратно, а затем его направили в прифронтовую полосу на строительство оборонительных сооружений против Советской Армии. В Полоцке он тщательно обдумал план побега и, подготовившись к нему, оглушил майора и привез его к своим. Оттуда его направили в госпиталь подлечиться. Сразу же он написал письмо домой, но ответ получил не от жены, а от соседа-столяра Ивана Тимофеевича, который сообщил, что в июне сорок второго года немцы бомбили авиазавод, и одна бомба попала прямо в его хату. В это время его жена и дочки находились в хате – от них не нашли и следа. А сын во время бомбежки был в городе, вернулся в поселок только вечером, посмотрел на яму, оставшуюся вместо дома, и ушел в город проситься на фронт добровольцем.
Затем Соколов получил отпуск на месяц и отправился в Воронеж. Дошел пешком до того места, где когда-то жил с семьей, но и часу не смог там оставаться и уехал обратно в дивизию.
Через три месяца его сын Анатолий написал Андрею письмо на фронт, узнав адрес от соседа. Оказывается, сначала он попал в артиллерийское училище, через год закончил его с отличием, пошел на фронт, сейчас уже получил звание капитана, командует батареей, имеет шесть орденов и медали.
Андрей уже мечтал об окончании войны, как он женит сына, будет плотничать и нянчить внучат. Но утром девятого мая, в День Победы, Анатолия убил немецкий снайпер.
Когда закончилась война, поехал Соколов к своему товарищу в Урюпинск, устроился работать шофером в автороту, возил различные грузы по районам. Возвращаясь в город, первым делом заезжал в чайную, где однажды увидел маленького мальчика, оборвыша, который кормился возле чайной. Соколов забрал его с собой, сказав ему, что он – его отец.
Однажды в ноябре Андрей ехал по грязи, машину занесло, и он случайно сбил корову. И хотя та поднялась и побежала дальше, его лишили шоферской книжки. Зиму он проработал плотником, а теперь списался с одним приятелем-сослуживцем, который пригласил его к себе в Кошарский район, куда он теперь и следует пешком вместе с сыном.
Тут появился товарищ рассказчика, и они с Соколовым расстались.