Родился 18 сентября 1913 года в селе Щетиновка Рязанской губернии в семье крестьянина.
Член КПСС с 1944 года. Образование начальное. Работал грузчиком комбината «Заготзерно».
В Красной Армии в 1935—1937 годах и с 1941 года. Боевое крещение Зайцев принял осенью 1941 года под Москвой в качестве зенитчика.
В ноябре 1941 года Зайцев был отозван и направлен в артиллерийскую школу. Там он приобрёл новую боевую специальность — наводчик противотанкового орудия. Почти полтора года артиллерийский полк, в который Зайцев был распределён, находился в тылу, в учебных лагерях. Весной 1943 года 12-й ИПТАП, в котором служил наводчиком сержант Зайцев, был придан 6-му танковому корпусу и направился на фронт.
9 мая 1943 года 12-й ИПТАП прибыл на станцию Новый Оскол. Выгрузив новые противотанковые пушки ЗИС-5, артиллеристы на тягачах перебазировались под г. Обоянь Курской области в ближайший резерв Воронежского фронта.
До 12 июля полк, в котором служил Зайцев, не участвовал в боях.
12 июля 1943 года под Прохоровкой произошло грандиозное встречное танковое сражение, завершившее оборонительный этап Курской битвы.
18 июля 1943 года у села Верхопенье Ивнянского района Белгородской области фашистские бронированные полчища яростно атаковали наши наступающие части. На пути их встала 2-я батарея 12-го ИПТАП.
В длительном ожесточённом бою выбили из строя все орудия батареи. Зайцев из всей батареи остался в строю один. Когда фашисты прекратили все попытки прорыва, и на позиции геройской батареи пришла помощь, оказалось, что сержант Зайцев из неисправной пушки в одиночку подбил 6 фашистских танков, 3 из которых были «тиграми».
В последующих боях на Курской дуге сержант Зайцев подбил ещё 2 танка противника.
Указом Президиума Верховного Совета СССР от 21 сентября 1943 года за образцовое выполнение боевых заданий командования на фронте борьбы с немецко-фашистскими захватчиками и проявленные при этом отвагу и геройство сержанту Ивану Фёдоровичу Зайцеву было присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда».
Сержант Зайцев в составе 6-й гвардейской армии освобождал города Люботин и Харьков. Вышел к Днепру. Но в одном из боёв был тяжело ранен.
После выхода из госпиталя И. Ф. Зайцев 5 ноября 1943 года в Кремле из рук М. И. Калинина получил орден Ленина и «Золотую Звезду» Героя Советского Союза.
После окончания войны И. Ф. Зайцев вернулся на родину. Жил в городе Михайлов Рязанской области. Длительное время работал начальником Михайловской пожарно-территориальной части пожарной охраны города. Вместе с ним в пожарной охране служил его сын. Оба отличились на малых и крупных пожарах.
И. Ф. Зайцев умер 12 апреля 1981 года. Похоронен в городе Михайлове Рязанской области.