В конце 1921 года писатель приехал в Москву, где оказался без денег, без службы и без жилья. Булгаков устроился секретарём в Литературный отдел (ЛИТО) Главполитпросвета при Наркомпросе. Затем он работал конферансье, инженером в Научно-техническом комитете, разрабатывал проект световой рекламы. В 1922 году он работал журналистом. Первыми его произведениями, написанными в Москве, были фельетоны, которые печатали газеты «Накануне» (Берлин), «Труд» и «Гудок». Фельетоны этого времени Булгаков ценил невысоко. В «Гудке» он работал вместе с И. Бабелем, В. Катаевым, Ю. Олешей, И. Ильфом, Е. Петровым, К. Паустовским.
В двадцатые годы в печати появились его повести «Дъяволи-ада» (1924) и «Роковые яйца» (1925). Повести были восприняты современниками как сатирические произведения. Скрытую за шутками философскую глубину не заметили. Не заметили и пророческие предупреждения о том, к чему могут привести научные опыты по преобразованию природы.
В 1925 году в журнале «Россия» Булгаков начал публиковать роман «Белая гвардия». Полностью произведение опубликовать не успели — журнал был закрыт. У Булгакова был проведён обыск, во время которого изъяли дневник и повесть «Собачье сердце»
(1925), которая была опубликована лишь в 1987 году. Это произведение соединяет в себе многие характерные для творчества писателя мотивы. В первую очередь это мотив превращения, типичный для гротеска. Бытовая интрига приобретает иррациональный характер, происходит смешение реального и фантастического планов. Гротескная ситуация основана на совмещении трагедии и комедии.
Булгаков раскрывает абсурдность стремления новой власти воплотить в жизнь лозунг «кто был ничем, тот станет всем» и показывает недопустимость продвижения в жизнь научных идей о «переделке» человека. Фантастическая ситуация нужна писателю для того, чтобы продемонстрировать опасность воплощения таких преобразований.
Композиционно повесть построена на антитезе, контрасте мира профессора Преображенского и мира Шарикова. Традиционная для русской литературы тема народа и интеллигенции была важна и для Булгакова. Образ Шарикова показывает отношение Булгакова к этому вопросу: народу не надо приписывать не свойственные ему качества. Однако при всём этом нельзя снимать вины ни с Преображенского, ни со Швондера, которые экспериментируют с «переделкой» человечества.
На материале романа «Белая гвардия» Булгаков создал пьесу «Дни Турбиных». 5 октября 1926 года состоялась премьера спектакля «Дни Турбиных» во МХАТе. Пьеса была названа партийной критикой «контрреволюционной». Но у зрителей она имела огромный успех. На спектаклях много раз бывал И.В. Сталин — «Дни Турбиных» были одной из любимых его пьес. С перерывами, с цензурными препонами она шла на сцене МХАТа в течение многих лет.
В 1928 году у Булгакова возник замысел романа «Мастер и Маргарита», работа над которым продолжалась до конца жизни писателя.
Булгаковым были также созданы пьесы «Зойкина квартира»
(1926), «Багровый остров», «Бег» (обе — 1928), «Кабала святош» (1929), «Иван Васильевич», «Александр Пушкин» (обе — 1935) и др. Большинство из них были запрещены к постановке. Булгакова не печатали. Е.С. Булгакова, вдова писателя, вспоминала: «Булгаков не держал в руках гранок 15 лет, с 1926 года по год смерти». Писатель оказался в отчаянной ситуации. Запрет на публикации его произведений привёл к тяжёлому материальному положению.
В 1929 году Главный репертуарный комитет вынес решение о снятии с репертуара всех пьес Булгакова. Газета «Правда» организовала кампанию против «великодержавного шовинизма» писателя и его пьесы «Дни Турбиных». В июле Булгаков был вынужден написать письмо-заявление И.В. Сталину, М.И. Калинину и др. с просьбой о выезде из СССР: «В этом году исполняется десять лет с тех пор, как я начал заниматься литературной работой в СССР. По мере того, как я выпускал в свет свои произведения, критика в СССР обращала на меня всё больше внимания, причём ни одно из моих произведений... не получило ни одного одобрительного отзыва... К концу десятого года силы мои надломились, не будучи более в силах существовать, затравленный, зная, что ни печататься и ставиться более в пределах СССР мне нельзя, доведённый до нервного расстройства, я обращаюсь к Вам и прошу Вашего ходатайства перед Правительством СССР об изгнании меня за пределы СССР вместе с женою моей...» Булгакова за границу не выпустили.
28 марта 1930 года Булгаков пишет письмо Правительству СССР с просьбой предоставить возможность работать или «приказать мне в срочном порядке покинуть пределы СССР». 18 апреля писателю позвонил И.В. Сталин. Во время телефонного разговора Булгаков сказал: «Я очень много думал в последнее время — может ли русский писатель жить вне Родины. И мне кажется, что не может». Разговор сыграл положительную роль в судьбе писателя — Булгакова приняли на работу во МХАТ ассистентом режиссёра. Он также переводил классиков и редактировал чужие пьесы. Среди инсценировок, созданных Булгаковым в тридцатые годы, — «Война и мир», «Мёртвые души» и многие другие. Всё это рождало надежды на постановки собственных пьес. Но спектакль «Мольер» (по пьесе «Кабала святош») в постановке К.С. Станиславского, разрешённый Сталиным, был прекращён в 1936 году на седьмом представлении.
В 1939 году М. Булгаков написал пьесу «Батум». Пьеса о молодом Сталине создана по историческим событиям 1902 года (забастовка батумских рабочих). Но она оказалась не созвучна тому монументальному тону, в котором создавался в литературе образ Сталина в те годы, и репетиции были остановлены правительственной телеграммой. Причина тому — отзыв Сталина, который «сказал, что пьесу “Батум” он считает очень хорошей, но что её нельзя ставить» (В.И. Немирович-Данченко). Это было ударом для писателя: здоровье его пошатнулось, он начал терять зрение.
В марте 1940 года Михаила Афанасьевича Булгакова не стало. Его похоронили на Новодевичьем кладбище. Елена Сергеевна Булгакова во время поисков материала для памятника нашла в Новодевичьем монастыре среди обломков мрамора камень, когда-то стоявший на могиле Н.В. Гоголя в Даниловом монастыре. После перезахоронения праха Гоголя на Новодевичьем кладбище на его могиле был поставлен новый памятник, а прежний сброшен. Этот камень Е.С. Булгакова и установила на могиле мужа. Выбирая эпиграф для пьесы о Мольере, Михаил Афанасьевич посчитал наиболее подходящей надпись, выбитую на памятнике Мольеру в Париже: «Для его славы ничего не нужно. Он нужен для нашей славы». Наверное, эти слова с полным правом могут быть отнесены и к Булгакову.