Действие повести происходит во второй половине тридцатых годов. Мальчик Серёжа рано потерял мать и живёт вдвоём с отцом, бывшим сапёром-красноармейцем. Отец Серёжи женится на красивой девушке — Валентине, которая вскоре убеждает Серёжиного отца, что они могли бы жить куда лучше. Вскоре итог оказывается закономерным, у Серёжи — пионера, барабанщика отряда — арестовывают отца за должностное преступление — растрату. Как его днём выводили из квартиры, как сажали в «воронок», видел весь дом. После суда Серёжа мысленно попрощался с отцом:
Прощай! — думал я об отце. — Сейчас мне двенадцать, через пять будет семнадцать, детство пройдет, и в мальчишеские годы мы с тобой больше не встретимся.
Мальчику очень стыдно за преступление, совершённое отцом, он полагает, что остался в отчуждении — вокруг него может образоваться пустота. И это стало толчком к сближению с разными случайными людьми, он покатился вниз. Мачеха, уехав на юг, оставляет Серёжу одного в квартире, оставив ему деньги на пропитание. Серёжа легкомысленно растрачивает оставленные деньги, то втридорога купив у дворового хулигана фотоаппарат, оказавшийся негодным, то угощает знакомую девочку в кафе. В итоге, вскоре оказавшись в долгах, Серёжа вынужден продавать старьёвщику ценные вещи мачехи. Мальчик понимает, что по возвращении мачехи ему будет худо, и мечтает, чтоб в их квартиру забрались воры, чтоб можно было свалить на них пропажу вещей мачехи, для чего регулярно оставляет дверь открытой.
Как-то, вернувшись в свою квартиру, Серёжа обнаруживает в ней некоего человека, назвавшимся якобы братом Серёжкиной мачехи. На удивленные вопросы Серёжи, «дядя» объясняет, что «сестра» Валентина никогда не рассказывала о нем, просто по рассеянности. «Дядя», с виду добродушный толстяк, обещает помочь мальчику («Дядя» на самом деле бывший белогвардеец, вражеский шпион). «Дядя» увозит мальчика в Киев, при этом по дороге они грабят какого-то мужчину. Приехав в Киев, «дядя» целыми днями пропадает неизвестно где. Серёжа частенько слышит странные запахи, находит странную бумагу и т. д. Одним словом, — «дядя» что-то скрывает. На попытку расспросов Серёжи, «дядя» намекает, что он якобы, является непризнанным учёным-химиком. «Дядя» обещает отвезти Серёжу в Одессу и устроить курсантом в школу мичманов (но потом Серёжа узнаёт, что такой школы в Одессе нет и не было вообще!), но сам планирует провернуть свои тёмные дела и убить мальчишку.
Не менее подозрителен и «дядин» знакомый — Яков, уродливый старик-«орденоносец», злой и жадный каналья, на деле являющийся старым бандитом, ненавидящий Серёжу. Притворяясь «героем-красноармейцем», он удачно совершает махинации, грабит людей, но полностью подчиняется шпиону-дяде.
Затем все трое останавливаются на некой усадьбе с полоумной старухой-смотрительницей (по-видимому, бывшей барыне, обязанной «дяде» тем, что он когда-то спас её от солдат, собиравшихся швырнуть её в воду).
Дядя знакомит Серёжу с мальчиком Славкой и даёт своему подопечному задание — подробно разузнать о Славкином отце-инженере. Вскоре Славкиного отца ранят в лесу неизвестные.
Мальчик в итоге догадывается, кем на деле являются «дядя» и старик Яков, осознаёт, что агенты иностранной разведки могут нанести страшный вред Советскому государству, и поэтому, желая помешать им скрыться, стреляет в них из стащенного у «дяди» пистолета, убивает выстрелом старика Якова, но получает ответную пулю в горло от «дяди»-шпиона и теряет сознание.
В финале освобожденный из заключения досрочно за ударный труд, возвращается отец Серёжи, навещает сына в больнице, также Сережу навещают мальчик Слава и старые знакомые, которые готовы принять и простить Серёжу и его отца, несмотря на их прежние ошибки и проступки. В больнице от Славки и следователя НКВД майора Герчакова Серёжа узнает, что "старик Яков" убит, «дядя» арестован, и что в момент перестрелки Серёжи с бандитами, дача уже была окружена сотрудниками НКВД.
Серёжа и его отец, поняв и простив друг друга за прошлые ошибки, решают вновь начинать честную трудовую жизнь.