Иван Шумилов родился 28 мая 1919 года в селе Михайловка ныне Лебединского района Сумской области Украины. Член ВКП(б)/КПСС с 1943 года. Окончил 7 классов и школу ФЗУ. Работал слесарем на металлургическом заводе Войкова в Керчи. Одновременно учился в аэроклубе.
В Красной Армии с 1937 года. В 1938 году окончил 1-ю Качинскую военную авиационную школу лётчиков имени Мясникова.
Участник Великой Отечественной войны с июня 1941 года. Сражался под Москвой. Летал на штурмовку и прикрытие наземных войск. 2 декабря 1941 года в воздушном бою у реки Истры реактивными снарядами сбил сразу два бомбардировщика Ju-87.
К февралю 1942 года лейтенант Шумилов совершил 112 боевых вылетов, в воздушных боях сбил 8 самолётов противника.
Звание Героя Советского Союза с вручением ордена Ленина и медали "Золотая Звезда" лейтенанту Шумилову Ивану Петровичу присвоено Указом Президиум Верховного Совета СССР от 4 марта 1942 года.
Всего во время войны совершил 565 боевых вылетов, сбил 16 самолётов противника.
После войны отважный летчик продолжал службу в ВВС СССР, был штурманом полка. В 1955 году окончил Краснознамённую Военно-воздушную академию. В 1956 -1957 годах полковник авиации Шумилов - командир 264-го истребительного авиаполка 159-й истребительной авиационной дивизии 29-й воздушной армии. Закончил службу в Южно-Сахалинске в 1960 году в должности заместителя командира 29-й Амурской истребительной авиадивизии. В 1961 году полковник Шумилов был уволен в запас.
Жил в городе-герое Москве. Работал лётчиком-инструктором ГВФ, затем заместителем начальника по лётной службе на лётно-испытательной станции. Скончался 22 июня 1987 года. Похоронен в Москве на Кунцевском кладбище.
Награждён орденами Ленина, Красного Знамени, Отечественной войны 1-й степени, двумя орденами Красной Звезды и медалями.