Иван Петрович Грачёв родился 5 января 1915 года в деревне Фолдлво (ныне Клепиковский район Рязанской области). Русский.
В 1936 году был призван на службу в Рабоче-крестьянскую Красную Армию.
В 1939 году Грачёв окончил 1-ю Качинскую военную авиационную школу лётчиков. Участвовал в советско-финской войне.
С начала Великой Отечественной войны — на её фронтах. Участвовал в обороне Ленинграда.
К январю 1942 года младший лейтеннант Иван Грачёв был заместителем командира эскадрильи 191-го истребительного авиаполка 7-го истребительного авиакорпуса Войск ПВО. К тому времени он совершил 102 боевых вылета, в воздушных боях сбил 9 вражеских самолётов лично и ещё 4 — в группе.
Указом Президиума Внрховного Совета СССР от 16 января 1942 года младший лейтенант Иван Грачёв был удостоен высокого звания Героя Советского Союза.
К сентябрю 1944 года гвардии майор Иван Грачёв командовал эскадрильей 68-го гвардейского истребительного авиаполка 5-й гвардейской истребительной авиадивизии 11-го истребительного авиакорпуса 3-й воздушной армии 1-го Прибалтийского фронта.
14 сентября 1944 года в воздушном бою под Ригой, израсходовав все боеприпасы, Грачёв совершил таран вражеского самолёта и погиб при этом. Похоронен в городе Лиепая (Латвия)
Всего за время Великой Отечественной войны Иван Грачёв совершил 203 боевых вылета, провёл 94 воздушных боя, в которых сбил лично 13 и в составе группы 4 самолёта противника.