Проживал в селе Владимировка (ныне город Ахтубинск Астраханской области). Окончил среднюю школу. Позже работал учителем средней школы.
1941 — призван в армию.
1942 — окончил Ставропольское военное пехотное училище. После чего, с сентября 1942 стал Участником Великой Отечественной войны. Участвовал в обороне г. Сталинграда, в Курской битве, в освобождении Правобережной Украины, Румынии, Болгарии, Югославии.
Особо отличился в Белградской операции. В ночь на 20 октября 1944 года с двумя батальонами форсировал Дунай в районе населённого пункта Батина (Югославия) и захватил плацдарм на левом берегу реки. В течение дня батальоны отражали непрерывные контратаки противника. В ночь на 21 октября 1944 года переправил на левый берег весь полк и удержал плацдарм до подхода главных сил дивизии.
За мужество и героизм, проявленные в боях, гвардии майору Зайцеву Ивану Николаевичу 24 марта 1945 года присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» (№ 5430).
Также был награждён орденом Ленина, 2 орденами Красного Знамени, 2 орденами Отечественной войны 1-й степени, 2 орденами Красной Звезды, орденом «За службу Родине в Вооруженных Силах СССР» 3-й степени, медалями, иностранными наградами.
После войны продолжал службу в армии на командных должностях в Москве.
28 мая 1997 года — умер и был Похоронен на Троекуровском кладбище в Москве.