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