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