Иван Шмелёв родился в 1873 году в Москве. Дома получил начальное образование с упором на изучение литературы. Затем Иван окончил Шестую Московскую гимназию и поступил на юридический факультет Московского университета.
Вопреки воле матери, выбравшей богатую невесту, Иван женился на Ольге Александровне Охтерлони. В 1898 году, окончив университет, отбыл воинскую повинность и поступил в московскую адвокатуру. Переехал во Владимир, работал налоговым инспектором. Разъезжая по глубинке России, Иван накапливал опыт для писательского труда и в 1907 году ушел со службы, посвятив себя творчеству. Его произведения публиковали журналы «Русское богатство» и «Русская мысль». Славу автору принесла повесть «Человек из ресторана».
Иван Шмелёв был противником Октябрьской революции и большевизма, видя в них разрушение России. В июне 1918 года Шмелёвы уехали из Москвы в Крым. Осенью 1920 года, заняв Крымский полуостров, большевики арестовали сына писателя Сергея, офицера русской армии. Несмотря на обращения к Луначарскому и Ленину, Сергей был расстрелян. Убийство сына, Красный террор, голод в Крыму привели Шмелёва к депрессии. Мысли об эмиграции подогревало обещание помощи от писателя Ивана Бунина.
В январе 1922 года Шмелёв уезжает на лечение в Берлин, а чуть позднее по приглашению Бунина Шмелёвы перебираются в Париж, не зная, что на Родину больше не вернутся.
После пережитого Шмелёв похудел, постарел, обострились болезни. Только поддержка Ольги Александровны давала силы работать. Однако в 1936 ее не стало. Друзья организовали поездку в Прибалтику, чтобы отвлечь писателя от тоски. Он побывал в Псковско-Печорском монастыре, постоял у советской границы.
Годы Второй мировой войны Шмелёв провел в оккупированном немцами Париже.
24 июня 1950 года Шмелёв приехал в обитель Покрова Пресвятой Богородицы рядом с Парижем, где умер от сердечного приступа. Был погребен на парижском кладбище Сент-Женевьев-де-Буа. В мае 2001 года прах Шмелёва и его жены был перенесен в некрополь Донского монастыря в Москве согласно его предсмертной воле.