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