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