Иван Карпов родился в 1913 году в селе Елховка (ныне — Тоцкий район Оренбургской области). После окончания шести классов школы работал в колхозе, затем слесарем на заводе. В апреле 1941 года Карпов был призван на службу в Рабоче-крестьянскую Красную Армию. С 1942 года — на фронтах Великой Отечественной войны. Принимал участие в боях на Западном, Сталинградском, 3-м Украинском фронтах. Участвовал в боях под Сталинградом и освобождении Украинской ССР. К апрелю 1944 года гвардии сержант Иван Карпов командовал пулемётным расчётом 60-го гвардейского стрелкового полка 20-й гвардейской стрелковой дивизии 37-й армии 3-го Украинского фронта. Отличился во время форсирования Днестра.