Михаил Булгаков родился 3 (15) мая 1891 года в Киеве в семье доцента Киевской духовной академии Афанасия Ивановича Булгакова (1859—1907) и его жены Варвары Михайловны (в девичестве — Покровской) (1869—1922). В семье было семеро детей: Михаил (1891—1940), Вера (1892—1972), Надежда (1893—1971), Варвара (1895—1954), Николай (1898—1966), Иван (1900—1969) и Елена (1902—1954).
В 1909 году Михаил Булгаков закончил киевскую Первую гимназию и поступил на медицинский факультет Киевского университета. 31 октября 1916 года — получил диплом об утверждении «в степени лекаря с отличием со всеми правами и преимуществами, законами Российской Империи сей степени присвоенными».
Был направлен на работу в село Никольское Смоленской губернии, затем работал врачом в Вязьме. В 1913 году Булгаков вступает в свой первый брак — с Татьяной Лаппа (1892—1982).
Во время Гражданской войны, в феврале 1919 года, Булгаков мобилизуется как военный врач в армию Украинской Народной Республики, но почти сразу дезертирует[источник не указан 63 дня]. В том же году успевает побывать врачом Красного креста, а затем — в белогвардейских Вооружённых силах Юга России. Некоторое время он с казачьими войсками проводит в Чечне, затем во Владикавказе.
В конце сентября 1921 года Булгаков переехал в Москву и начал сотрудничать как фельетонист со столичными газетами («Гудок», «Рабочий») и журналами («Медицинский работник», «Россия», «Возрождение»). В это же время он публикует отдельные произведения в газете «Накануне», выпускавшейся в Берлине. С 1922 по 1926 год в «Гудке» напечатано более 120 репортажей, очерков и фельетонов Булгакова.
В 1923 году Булгаков вступает во Всероссийский Союз писателей. В 1924 году он знакомится с недавно вернувшейся из-за границы Любовью Евгеньевной Белозерской (1898—1987), которая вскоре становится его новой женой.
С 1926 года во МХАТе с большим успехом идёт пьеса «Дни Турбиных». Её постановка разрешена на год, но позже несколько раз продлевалась, поскольку пьеса понравилась Сталину. Отметим, что в своих выступлениях Сталин соглашался: «Дни Турбиных» — «антисоветская штука, и Булгаков не наш». Одновременно в советской прессе проходит интенсивная и крайне резкая критика творчества Булгакова; по его собственным подсчётам, за 10 лет появилось 298 ругательных рецензий и 3 благожелательных. Среди критиков были такие влиятельные чиновники и литераторы, как Маяковский, Безыменский, Леопольд Авербах, Виктор Шкловский, Керженцев и многие другие.
В 1928 году Булгаков едет с Любовью Евгеньевной на Кавказ, посещает Тифлис, Батум, Зелёный Мыс, Владикавказ, Гудермес. В Москве в этом году проходит премьера пьесы «Багровый остров». У Булгакова возникает замысел романа, позднее названного «Мастер и Маргарита» (ряд исследователей творчества Булгакова отмечают влияние на него при замысле и написании этого романа австрийского писателя Густава Майринка, в частности можно говорить о таких романах последнего, как «Голем», который Булгаков читал в переводе Д.Выгодского, и «Зелёный лик»). Писатель также начинает работу над пьесой о Мольере («Кабала святош»).
В 1929 году Булгаков знакомится с Еленой Сергеевной Шиловской, будущей третьей женой.
В 1930 году произведения Булгакова перестают печататься, пьесы изымаются из репертуара театров. Запрещены к постановке пьесы «Бег», «Зойкина квартира», «Багровый остров», спектакль «Дни Турбиных» снят с репертуара. В 1930 году Булгаков пишет брату Николаю в Париж о неблагоприятной для себя литературно-театральной ситуации и тяжёлом материальном положении. Тогда же он пишет письмо Правительству СССР с просьбой определить его судьбу — либо дать право эмигрировать, либо предоставить возможность работать во МХАТе. Булгакову звонит Сталин, который рекомендует драматургу обратиться с просьбой зачислить его во МХАТ.
В 1930 году Булгаков работал в Центральном театре рабочей молодёжи (ТРАМ). С 1930 по 1936 год — во МХАТе в качестве режиссёра-ассистента. В 1932 году Булгаков инсценировал на сцене МХАТ «Мёртвые души» Николая Гоголя. Он пытался поставить «Кабалу святош» (1930), но спектакль был почти сразу запрещён. «Кабала святош» увидела свет только в 1936 году, прошла 7 раз с огромным успехом, после чего была запрещена окончательно, а в «Правде» была помещена разгромная статья об этой «фальшивой, реакционной и негодной» пьесе. В январе 1932 года Сталин (формально — Енукидзе) вновь разрешил постановку «Дней Турбиных», и до войны она больше не запрещалась. Правда, ни на один театр, кроме МХАТ, это разрешение не распространялось.
В 1936 году, после статьи в «Правде», Булгаков ушёл из МХАТ и стал работать в Большом театре как либреттист и переводчик. В 1937 году Булгаков работал над либретто «Минин и Пожарский» и «Пётр I».
Камень с могилы Гоголя на могиле Булгакова
В 1939 году Булгаков работает над либретто «Рашель», а также над пьесой о Сталине («Батум»). Пьеса была одобрена Сталиным, но вопреки ожиданиям писателя она была запрещена к печатанию и постановке. Состояние здоровья Булгакова резко ухудшается. Врачи диагностируют у него гипертонический нефросклероз. Писатель начинает диктовать Елене Сергеевне последние варианты романа «Мастер и Маргарита».
С февраля 1940 года друзья и родные постоянно дежурят у постели Булгакова, который страдает болезнью почек. 10 марта 1940 года Михаил Афанасьевич Булгаков скончался. 11 марта состоялась гражданская панихида в здании Союза Советских писателей. Перед панихидой московский скульптор С. Д. Меркуров снимает с лица Булгакова посмертную маску.
Похоронен Булгаков на Новодевичьем кладбище. На его могиле, по ходатайству его жены Е. С. Булгаковой, был установлен камень, прозванный «голгофой», который ранее лежал на могиле Н. В. Гоголя.