Рассказ ведётся от лица двенадцатилетнего школьника Бориса Горикова, проживающего в небольшом городе Арзамасе. Его отец, учитель, участвовал в Первой мировой войне, мать трудится фельдшерицей, а младшая сестра ещё не посещает школу. Из-за постоянной занятости матери Борис растёт практически без присмотра: учится плохо, ведёт себя непослушно, мечтает стать матросом и гордится отцом, который сражается с немцами. Вместе с лучшим другом и одноклассником Федькой Башмаковым он устраивает шалости, летом строит плот и соревнуется с соседскими мальчишками в играх, имитирующих войну.
В школе Борис каждое утро молится за победу над врагом и поёт «Боже, царя храни», не интересуясь политикой. Узнав от Федьки о революции 1905 года, он начинает расспрашивать мать и получает разрешение ознакомиться с отцовскими книгами, где находит рассказы, изображающие полицейских как злодеев, а революционеров — как героев, что глубоко впечатляет мальчика. Ему досаждает, что отец редко пишет письма и не делится подробностями своих подвигов. Однажды незнакомый солдат приносит письмо и подарок от отца, рассказывает о тяжёлой жизни в окопах, и Борис с удивлением понимает, что в этой обстановке нет ничего героического, а солдаты не хотят воевать. Среди присланных вещей оказывается маузер с патронами, а мать, получив письмо, плачет всю ночь.
Осенью отец возвращается с фронта тайно, и Борис сразу замечает, что тот дезертировал. Отец раскрывает сыну правду о войне: немцы тоже не желают сражаться, однако правительства не идут на мир, и их необходимо принудить к этому. После того как в школе становится известно, что отец Бориса дезертир, к мальчику отворачиваются одноклассники. Отец скрывается у кладбищенского сторожа, с сыном которого Тимкой Борис сближается. Вскоре арестовывают и сторожа, и отца.
25 февраля отца Бориса расстреляли за дезертирство и антиправительственную пропаганду. 2 марта в городе объявляют о революции и установлении власти Временного правительства. В Арзамасе начинается так называемое «весёлое время»: отменяют уроки, появляются представители разных партий — эсеры, кадеты, большевики, анархисты. Большевиков в городе не любят, Ленина считают агентом кайзера Германии. Местный священник утверждает, что Иисус был социалистом и революционером, из-за чего многие, включая Федьку, становятся сторонниками эсеров — социалистов-революционеров.
На улицах проходят митинги, раздаются листовки. В городе появляется учитель по прозвищу Галка, которого ранее посадили в тюрьму. Он рассказывает Борису, что сидел вместе с его отцом, и сообщает, что и отец, и он были большевиками. С этого времени Борис начинает проводить свободное время в большевистском клубе. Большевики выступают не на городских митингах, а среди беженцев и в деревнях. На одном из таких собраний Борис встречает Федьку, распространяющего листовки эсеров, и отказывается ему помогать.
Несмотря на смену власти, жизнь в стране почти не меняется: война продолжается, земля остаётся в руках помещиков, заводы — у капиталистов. Отец Тимки возвращается из тюрьмы, но, не найдя работы из-за политического прошлого, уезжает из города вместе с сыном, что становится для Бориса прощанием с единственным другом. В тот же день Галка сообщает, что большевистский клуб закрыли, а активистов арестовали, и партия вновь оказалась вне закона.
Дружба с Федькой портится: бывший лучший друг становится активистом-эсером и выступает на митингах, а Борис, лишившись поддержки, собирается уйти из школы. Борис не расстаётся с маузером, подаренным отцом. Зная это, Федька подговаривает одноклассников отобрать оружие, и в драке Борис стреляет и выпрыгивает из окна. Дома он узнаёт, что исключён из школы и от него требуют сдать маузер. Мать пытается скрыть оружие, но Борис находит его и тайно уезжает в Нижний Новгород, надеясь найти там дядю или Галку.
В Сормово Борис не находит Галку, но встречает дядю, который, не желая иметь дела с большевиками, собирается отправить мальчика обратно домой. Борис снова убегает и на митинге встречает Галку, который рассказывает о приближении новой революции. Борис остаётся при местном большевистском комитете до Октябрьской социалистической революции.
Через полгода, в возрасте пятнадцати лет, Бориса направляют на Украину в партизанский отряд, сражающийся с белогвардейцами. На третий день пути их поезд подвергается нападению банды, но Борису удаётся сбежать. Проведя сутки в лесу, он выходит к хутору и встречает молодого человека, который, по его мнению, тоже большевик, направляющийся за Дон. Позже Борис обнаруживает, что этот человек — белогвардеец, пытающийся убить его и завладеть документами; в схватке Борис убивает его из маузера.
Взяв вещи убитого, Борис присоединяется к красному отряду в селе и вместе с ним участвует в партизанской борьбе против немцев и белых, оккупировавших Украину. Он сближается с солдатом по фамилии Чубук, с которым ходит в разведку и берёт пленных. Отряд ведёт партизанскую войну, захватывая хутора, совершая налёты на станции и обозы белых. Руководителем отряда является бывший сапожник, пользующийся уважением, но не пользующийся авторитетом, в то время как своевольничает предводитель конной разведки Федя Сырцов.
Первый серьёзный бой Бориса происходит при нападении немцев на хутор, где они расположились. После боя остаётся много раненых, решают соединиться с соседним шахтёрским отрядом и уйти к регулярным частям Красной Армии, а тяжелораненых оставляют у пасечника. Борис с Чубуком отвозят раненых на пасеку, а затем отправляются на встречу с шахтёрами. Пока они ожидают союзников, Борис просматривает сумку убитого белого и обнаруживает документы на имя кадета Юрия Ваальда и письмо-рекомендацию на французском языке.
Он не успевает рассказать Чубуку об этом, поскольку на них нападают белогвардейцы, и им приходится укрываться. Ночью Борис, оставив товарища спящим, идёт купаться в реку, где случайно обнаруживает труп одного из раненых, и в этот момент попадает в плен. Его привозят в село, контролируемое белогвардейцами, где, благодаря найденным документам, принимают за Юрия Ваальда. Позже Борис узнаёт, что Чубука тоже взяли в плен, и тот, не сумев защитить товарищей, был расстрелян, считая Бориса предателем.
Ночью Борис бежит, возвращается к своим и честно рассказывает командиру обо всём. Полученная им информация помогает избежать засады белых. После возвращения он переходит в отряд Феди Сырцова и быстро осваивает верховую езду. Однажды отряд Сырцова, несмотря на плохую погоду, свернул на уединённый хутор, где провёл ночь в пьянстве, пропустив задание проверить дальнюю деревню. Позже, узнав об обнаружении белогвардейцев в той деревне, Сырцов устраивает неожиданное нападение и разгромляет врага, хотя был направлен в другую сторону.
Отряд возвращается не с того маршрута, из-за чего своих принимают за врагов и открывают огонь. Из-за действий Сырцова несколько человек ранены, а белые наносят поражение роте, которой он должен был помочь. Над Сырцовым намечают суд, но он убегает из отряда и уходит к батьке Махно. Во время наступления красных командир не наказывает Бориса, и тот старается загладить ошибки, проявляя героизм, который окружающие называют «Федькиными замашками». В итоге у него не остаётся друзей, но командир принимает заявление Бориса о вступлении в партию, что меняет отношение к нему и помогает избавиться от излишней демонстративности.
В одном из тяжёлых боёв Бориса ранят. В полусознательном состоянии он дожидается санитаров, думая о том, что люди вместе обязательно достигнут «светлого царства социализма». Затем появляется свет — это идут санитары.
Персонажи
Борис Гориков — школьник, легкомысленный, недисциплинированный,наивный, храбрый и честный.
Федя Башмачников — друг Бориса, сын почтальона, рассудительный всезнайка, интересуется политикой.
Тимка — друг Бориса, сын кладбищенского сторожа, маленький, щуплый, слабый, боязливый, единственное увлечение — ловля певчих птиц.
Галка — бывший учитель, большевик, немолодой, умный и образованный, походкой похож на птицу галку, настоящее имя — Семён Иванович.
Чубук — немолодой боец красного партизанского отряда, бывший шахтёр, степенный, рассудительный, невозмутимый.
Федя Сырцов — командир конной разведки, бывший пастух, недисциплинированный, легкомысленный, своенравный, вспыльчивый и безрассудный.
Юрий Ваальд — выпускник кадетского училища, белогвардеец, убитый Борисом, хитрый и расчётливый.