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