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