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