После начала Первой мировой войны М. Булгаков несколько месяцев работал врачом в прифронтовой зоне. Затем был направлен на работу в село Никольское Смоленской губернии, после этого работал врачом в Вязьме. С 1917 года М. А. Булгаков стал употреблять морфий, сначала с целью облегчить аллергические реакции на антидифтерийный препарат, который принял, опасаясь дифтерии после проведённой операции. Затем приём морфия стал регулярным. В декабре 1917 года он впервые приехал в Москву, остановившись у своего дяди, известного московского врача-гинеколога Н. М. Покровского, ставшего прототипом профессора Преображенского из повести «Собачье сердце». Весной 1918 года М. А. Булгаков возвращается в Киев, где начинает частную практику как врач-венеролог. В это время М. Булгаков перестаёт употреблять морфий. Во время Гражданской войны, в феврале 1919 года, М. Булгаков был мобилизован как военный врач в армию Украинской Народной Республики. В конце августа 1919 года, по одной из версий, М. А. Булгаков был мобилизован в Красную армию в качестве военного врача. Затем, согласно его воспоминаниям, был мобилизован в Вооружённые силы Юга России и был назначен военным врачом 3-го Терского казачьего полка.
В том же году успел поработать врачом Красного креста, а затем — в Вооружённых Силах Юга России. В составе 3-го Терского казачьего полка был на Сев. Кавказе. Печатался в газетах (статья «Грядущие перспективы»). Во время отступления Добровольческой армии в начале 1920 года заболел тифом и из-за этого не смог уйти в Грузию, оставшись во Владикавказе.
К 1930 году произведения Булгакова перестали печататься, пьесы изымались из репертуара театров. Были запрещены к постановке пьесы «Бег», «Зойкина квартира», «Багровый остров», спектакль «Дни Турбиных» снят с репертуара. В 1930 году Булгаков писал брату Николаю в Париж о неблагоприятной для себя литературно-театральной ситуации и тяжёлом материальном положении. Тогда же он написал письмо Правительству СССР, датированное 28 марта 1930 года[7], с просьбой определить его судьбу — либо дать право эмигрировать, либо предоставить возможность работать во МХАТе. 18 апреля 1930 года Булгакову позвонил И. Сталин, который порекомендовал драматургу обратиться с просьбой зачислить его во МХАТ.
В 1939 году М. А. Булгаков работал над либретто «Рашель», а также над пьесой об И. Сталине («Батум»). Пьеса уже готовилась к постановке, а Булгаков с женой и коллегами выехал в Грузию для работы над спектаклем, когда пришла телеграмма об отмене спектакля: Сталин счёл неуместной постановку пьесы о себе. С этого момента (по воспоминаниям Е. С. Булгаковой, В. Виленкина и др.) здоровье М. Булгакова стало резко ухудшаться, он стал терять зрение. Врачи диагностировали у него гипертонический нефросклероз. Булгаков продолжал употреблять морфий, прописанный ему в 1924 году, с целью снятия болевых симптомов. В этот же период писатель начал диктовать жене последние варианты романа «Мастер и Маргарита».
С февраля 1940 года друзья и родные постоянно дежурили у постели М. Булгакова. 10 марта 1940 года Михаил Афанасьевич Булгаков скончался. 11 марта состоялась гражданская панихида в здании Союза Советских писателей. Перед панихидой московский скульптор С. Д. Меркуров снял с лица М. Булгакова посмертную маску.
М. Булгаков похоронен на Новодевичьем кладбище. На его могиле, по ходатайству его жены Е. С. Булгаковой, был установлен камень, прозванный «голгофой», который ранее лежал на могиле Н. В. Гоголя.
Булгакова связывали дружеские отношения с В. В. Вересаевым, М. А. Волошиным. Булгаков уважал Б. Л. Пастернака. Однажды на именинах у жены драматурга Тренёва, его соседа по писательскому дому, Булгаков и Пастернак оказались за одним столом. Пастернак с особенным каким-то придыханием читал свои переводные стихи с грузинского. После первого тоста за хозяйку Пастернак объявил: «Я хочу выпить за Булгакова!» В ответ на возражение именинницы-хозяйки: «Нет, нет! Сейчас мы выпьем за Викентия Викентьевича, а потом за Булгакова!» — Пастернак воскликнул: «Нет, я хочу за Булгакова! Вересаев, конечно, очень большой человек, но он — законное явление. А Булгаков — незаконное!».