В ночь перед Рождеством месяц восходит на небо, чтобы осветить хутор. Ведьма, собирая звезды, встречает черта, который крадет с неба луну, чтобы отомстить кузнецу Вакуле, за искусно расписанную церковную стену. В безлунную ночь казак Чуб, отец красавицы Оксаны, не пойдет к дьяку на кутью, и Вакула не встретится перед праздником со своей любимой.
Пока черт ухаживал за ведьмой, нашептывал ей то, что «обыкновенно нашептывают всему женскому роду», Чуб с кумом, выйдя из дома и удивившись непроглядной тьме, все-таки пошли на застолье.
В это время, в хату Чуба тихо вошел кузнец. Избалованная Оксана вертелась перед зеркалом, нахваливая свою красоту. Любуясь собой, она не сразу заметила вошедшего Вакулу. Сердце кузнеца было полно нежности, а Оксана лишь насмехалась над ним. Стук в дверь прервал их беседу. Кузнец пошел открывать. За дверью оказался сбившийся из-за метели с дороги Чуб, который потерял попутчика. Казак решил вернуться домой. Увидев свою хату, он постучался. Однако, услышав голос кузнеца, подумал, что забрел не в свой дом. Вакула, не разобрав из-за вьюги, кто пришел, выгнал казака, чуть его не побив. Чуб смекнул, что хата чужая, а в ней кузнец, значит, мать Вакулы дома одна и направился в гости к Солохе.
Черт, вившийся вокруг ведьмы, обронил месяц, который поднялся в небо и осветил все вокруг. Метель стихла. Шумная толпа вломилась в хату Чуба и закружила в веселом хороводе Оксану и кузнеца. На одной из своих подруг гордая красавица увидела красивые черевики, расшитые золотом. Влюбленный Вакула пообещал достать для желанной Оксаны черевики еще красивее, но капризная девушка заявила, что ей нужны только те, что носит сама царица, и, если кузнец достанет ей такие, то она выйдет за него замуж.
В дом приветливой Солохи один за другим начали приходить гости – уважаемые казаки. Черт спрятался в мешок из-под угля. Затем голове и дьяку пришлось залезать в мешки. Самый желанный гость – вдовый Чуб, чье богатство планировала прибрать к рукам Солоха, влез в мешок на дьяка. Самый последний гость, казак Свербыгуз, был «грузен телом» и в мешок бы не поместился. Поэтому его Солоха вывела в огород, чтобы выслушать, зачем он пришел.
Вакула, вернувшись домой, увидел посреди хаты мешки и решил убрать их. Взяв тяжелую ношу, он вышел из дома. На улице, в веселой толпе, ему послышался голос Оксаны. Вакула бросил мешки, пробрался к любимой, но Оксана, напомнив ему про черевички, засмеялась и убежала. Разгневанный кузнец решил свести счеты с жизнью, но, опомнившись, пошел за советом к запорожцу Пацюку. По слухам, Пузатый Пацюк водил дружбу с нечистой силой. Отчаявшийся Вакула спросил, как найти дорогу к черту, чтобы получить от него помощь, но Пацюк дал невнятный ответ. Очнувшись, благочестивый кузнец выбежал их хаты.
Черт, сидевший в мешке за спиной Вакулы, не мог упустить такую добычу. Он предложил кузнецу сделку. Вакула согласился, но потребовал закрепить договор и, обманом перекрестив черта, сделал его смирным. Теперь черт вынужден был везти кузнеца в Петербург.
Гуляющие девушки нашли мешки, брошенные Вакулой. Решив посмотреть, что наколядовал кузнец, они поспешили за санками, чтобы отвести находку к Оксане в хату. Из-за мешка, в котором сидел Чуб, разгорается спор. Кумова жена, думая, что внутри мешка кабан, отбила его у супруга и ткача. К всеобщему удивлению в мешке оказался не только Чуб, но и дьяк, а еще в одном – голова.
Прилетев в Петербург на черте, Вакула встретил запорожцев, проезжавших ранее через Диканьку, и поехал с ними на прием к царице. Во время приема запорожцы ведут речь о своих заботах. Царица спросила, чего же хотят казаки. Вакула упал на колени и попросил черевички, такие же, как у государыни. Сраженная искренностью кузнеца, царица велела принести ему башмачки.
Весь хутор гомонил про смерть кузнеца. А Вакула, одурачив черта, пришел с подарками к Чубу сватать Оксану. Казак дал согласие кузнецу, а Оксана с радостью встретила Вакулу, готовая выйти за него и без черевиков. Позже в Диканьке хвалили чудно расписанный дом, в котором жила семья кузнеца, и церковь, где искусно был изображен черт в аду, в которого все плевали, когда проходили мимо.