Родился в Санкт-Петербурге в семье библиотекаря Санкт-Петербургской Академии наук. Окончил 4-ю Ларинскую гимназию (1867), затем — естественное отделение физико-математического факультета Санкт-Петербургского университета (1871). В университете специализировался по ботанике у профессора А. Н. Бекетова. За сочинение «О последовательности побегов в соцветии злаков» награждён золотой медалью. Оставлен при университете для подготовки к профессорскому званию.
В 1874 году защитил магистерскую диссертацию «О растительных помесях. Наблюдения из Санкт-Петербургской флоры», после чего был командирован за границу. Два года работал в университетах Страсбурга (у А. де Бари и В. Шимпера), Цюриха (у О. Хеера), в Вене, Праге, Мюнхене и Берлине, посетил Альпы, а также северную Италию и юг Франции. В 1876 году вернулся в Россию и был назначен консерватором гербария Императорского ботанического сада.
В 1877 году защитил докторскую диссертацию «Исследования над развитием млечных вместилищ растений» и получил звание приват-доцента Санкт-Петербургского университета. В 1878 году избран экстраординарным профессором ботаники Киевского университета и в 1879 году переехал в Киев, где преподавал и заведовал университетским ботаническим садом до конца своих дней (с 1886 года — в должности ординарного профессора).
Основные труды посвящены палеоботанике и флористике.
Имя И. Ф. Шмальгаузена носит Институт зоологии Национальной академии наук Украины