Иван Зайцев родился 1 марта 1922 года в деревне Новая Александровка Тверской губернии. В 1926 году переехал в Москву. В 1937 году Зайцев окончил семь классов школы, работал учеником слесаря, слесарем на Центральном телеграфе. В 1941 году он был призван на службу в Рабоче-крестьянскую Красную Армию. Окончил Орловское пехотное училище. С февраля 1942 года — на фронтах Великой Отечественной войны. Участвовал в Сталинградской и Курской битвах, четыре раза был ранен. К октябрю 1943 года лейтенант Иван Зайцев командовал пулемётной ротой 3-го батальона 685-го стрелкового полка 193-й стрелковой дивизии 65-й армии Центрального фронта. Отличился во время битвы за Днепр.
В ночь с 14 на 15 октября 1943 года Зайцев в составе десантной группы переправился через Днепр и с ходу атаковал вражеские траншеи. Пулемётчики Зайцева подавили огонь немецких огневых точек, способствовав успеху атаки и захвату плацдарма на западном берегу реки. Противник предпринял две контратаки, но обе они были отбиты. 15 октября Зайцев получил уже пятое за время войны ранение и был отправлен в госпиталь.
Указом Президиума Верховного Совета СССР от 30 октября 1943 года за «успешное форсирование Днепра, прочное закрепление плацдарма на его западном берегу и проявленные при этом отвагу и геройство» лейтенант Иван Зайцев был удостоен высокого звания Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» за номером 1259.
Был также награждён рядом медалей.