Молодий чоловік-оповідач, якого доля закинула на шість місяців в глухе село Переброд Волинської губернії, на околицю Полісся», нестерпно сумує. Єдині його розваги — полювання зі слугою Ярмолою і спроби навчити останнього грамоті. Одного разу, під час страшної хуртовини, герой дізнається від зазвичай несловоохотливого Ярмоли про те, що в десяти верстах від його будинку живе справжня відьма Мануйлиха, що казна-звідки з’явилася в селі, а потім була виселена за його межі за свої чаклунські дії.
Можливість познайомитися з нею з’являється швидко: як тільки потепліло, герой вирушає на полювання і, заблукавши в лісі, натикається на хату. Припустивши, що тут живе місцевий лісник, він заходить всередину і виявляє там бабу «з усіма рисами баби-яги, як її зображує народний епос». Мануйлиха зустрічає героя непривітно, але помітно пожвавлюється, коли той дістає срібний четвертак і просить бабу поворожити. У самий розпал ворожіння в дім заходить онука відьми, Олеся, темноволоса красуня «років двадцяти — двадцяти п’яти». Вона відноситься до оповідачеві привітно і показує йому дорогу додому.
Всі перші весняні дні образ Олесі не покидає думки оповідача.
Я і сам не підозрював, якими тонкими, міцними, незримими нитками було прив’язане моє серце до цієї чарівної, незрозумілою для мене дівчині.
Коли лісові дороги просихають, оповідач відправляється в хатинку чаклунки. Як і в перший раз, внучка зустрічає гостя куди привітніший, ніж Мануйлиха. А коли гість просить Олесю поворожити йому, та зізнається, що вже одного разу розкинула на нього карти і наворожила, що в цьому році випадає йому «велика любов з боку трефовой дами з темним волоссям». А тим, «хто буде вас любити, ви багато горя принесете». Ще карти розповіли Олесі, що трефовой цій дамі герой принесе ганьба, що гірше смерті.
Проводжаючи оповідача, Олеся спробує довести йому, що їй і її бабці належить справжній дар чаклунства, і проводить над ним кілька дослідів — Загоює йому глибокий поріз і змушує його спотикатися слідом за нею. Потім герой намагається довідатися, звідки все-таки прийшла Мануйлиха в Поліссі, на що Олеся відповідає ухильно, що бабуся не любить говорити про це. Тоді ж оповідач вперше представляється — його звуть Іван Тимофійович.
З цього дня герой стає частим гостем в хатинці. Олеся завжди рада його бачити, хоч і зустрічає стримано. А от баба не особливо задоволена, але Івану вдається задобрити її подарунками, допомагає і заступництво Олесі.
Івана зачаровує не тільки краса Олесі. Його приваблює і її самобутній розум. Між ними розгорається безліч суперечок, коли Іван намагається науково обґрунтувати Олесино «чорне мистецтво». Незважаючи на розбіжності, між ними виникає глибока прихильність. Тим часом у Івана псуються відносини з Ярмолою, який не схвалює його знайомства з чаклункою. Не подобається слузі і те, що обидві відьми бояться церкви.
Одного разу, коли Іван в черговий раз приходить у хату, він застає чаклунку і її онуку засмученими: місцевий урядник наказав їм забиратися геть з хати в двадцять чотири години і пригрозив пустити їх по етапах у разі непослуху. Герой викликається допомогти, і стара не відмовляється від пропозиції, незважаючи на Олесино невдоволення. Іван просить урядника не виганяти жінок з дому, на що той заперечує і називає бабусю з онукою «виразкою тутешніх місць». Задобривши урядника частуваннями і дорогими подарунками, Іван все-таки домагається свого. Урядник обіцяє залишити в спокої Мануйлиху і Олесю.
З цього часу Олеся починає уникати Івана і будь-яких пояснень з ним.
Розлука для любові те ж, що вітер для вогню: маленьку любов вона гасить, а велику роздмухує ще сильніше.
Тут Іван несподівано і серйозно занедужує — шість днів його «била жахлива поліська лихоманка». І лише після одужання йому вдається порозумітися з Олесею. Дівчина уникала зустрічей з Іваном лише тому, що хотіла піти від долі. Зрозумівши, що це неможливо, вона зізнається йому в любові. Іван відповідає їй взаємністю, але Олеся все не може забути про своє ворожіння. Однак, незважаючи на погані передчуття Івана і злобу Мануйлихи, їх любов розцвітає.
Тим часом службові обов’язки Івана в Переброде закінчуються, і все частіше приходить до нього думка одружитися на Олесі і забрати її з собою. Переконавши себе в правильності цього рішення, він робить пропозицію коханій. Але Олеся відмовляється — вона не хоче псувати життя молодому, утвореному панові. Дівчина навіть пропонує Івану просто поїхати за ним, без всякої одруження.
У Івана виникає підозра, що її відмова пов’язана з острахом церкви, на що Олеся каже, що заради любові до нього вона готова перебороти це марновірство. Вона призначає йому зустріч у церкві на наступний день, у свято Святої Трійці, а Івана охоплює жахливе передчуття.
Смутний потяг серця ніколи не помиляється у своїх швидких таємних передчуттях.
На наступний день Іван затримується у службових справах і не встигає вчасно потрапити в церкву. Повернувшись додому, він застає у себе місцевого конторника, який розповідає йому про сьогоднішню «потісі» — сільські дівки спіймали на площі відьму, якій поставили струс, хотіли вимазати дьогтем, але тій вдалося втекти. Дійсно, Олеся прийшла в церкву, відстояла обідню, після чого на неї накинулися сільські баби. Дивом вирвавшись, Олеся пригрозила їм, що вони ще згадають її і наплачутся досхочу.
Всі ці подробиці Іван дізнається пізніше. А поки ж він мчить в ліс, і застає в хаті побиту Олесю без пам’яті, охоплену лихоманкою, і проклинающую його Мануйлиху. Олеся приходить в себе і пояснює Івану, що їм з бабою не можна більше тут залишатися, тому їй і Івану доведеться розлучитися. На прощання Олеся зізнається, що хотіла б мати дитину від Івана і шкодує, що його немає.
Цієї ж ночі на Переброд обрушується сильний град. Вранці Ярмола будить Івана і радить йому забиратися з села — град, який побив жито у половини села, на думку сільських, був наслан чаклунками з помсти, і озлоблений народ вже починає «кричати недобре» про Івана. Бажаючи попередити Олесю про небезпеку, що їй біді, герой мчить в хату, де знаходить лише сліди спішного втечі і яскраві червоні намиста, які залишилися єдиною пам’яттю про Олеся і її ніжною, великодушної любові.