Родился в 1916 году в станице Упорной (по др. дан. - в Каладжинской). Проживал с женой, Еленой Федоровной, в станице Каладжинской Упорненского р-на. Мобилизован в Красную Армию Упорненским райвоенкоматом Краснодарского края в марте 1942 года ( по др. дан. - в 1941 г.). В составе 807-го стрелкового полка 304-й стрелковой дивизии 38-й армии Юго-Западного фронта принимал участие в боях в Харьковской области, с 24 июня 1942 года считался пропавшим без вести, имя И.П. Шилова было внесено в 17-й том Книги Памяти Краснодарского края. Был дважды ранен. Продолжал службу в 237-й стрелковой дивизии на Воронежском, 1-м Украинском фронтах. С августа 1944 года - в 225-м гвардейском стрелковом полку 78-й гвардейской стрелковой дивизии на 1-м Украинском фронте. 31 января получил сквозное пулевое ранение груди, 14 февраля умер в 85-м отдельном медсанбате и был захоронен на восточной окраине села Пястенталь близ города Бриг в Верхней Силезии Германии (ныне – г. Бжег, Польша). Имя Ивана Петровича Шилова внесено в 3-й том Книги Памяти Краснодарского края.