Происходил из дворян Тверской губернии, родился в 1764 г. Начал службу 1 января 1779 г. подпрапорщиком в Новгородском пехотном полку. Переведённый в Тульский пехотный полк Иванов 26 сентября 1786 г. получил чин прапорщика и в следующем году был переведён в Санкт-Петербургский гренадерский полк.
Участвовал во второй турецкой войне, сражался при Сальче и Бендерах, а с Белорусским егерским корпусом был на штурме Измаила и за отличие был произведён в поручики.
В 1794 году стоял в Варшаве, командуя ротой, и, когда вспыхнуло там восстание, успел собрать свою роту и пробился с нею из города; участвовал затем в других делах против конфедератов и за штурм Праги произведён в капитаны. По расформировании егерских корпусов был зачислен в 9-й (впоследствии 8-й) егерский полк.
В 1805 г., будучи батальонным командиром 8-го егерского полка, участвовал в битвах при Кремсе и при Аустерлице, получив за отличия ордена св. Анны 3-й степени на шпагу и св. Владимира 4-й степени с бантом. Произведённый 23 апреля 1806 г. в полковники в новой войне с Наполеоном принимал участие во многих делах, за отличие под Остроленкой получил орден св. Анны 2-й степени, 10 января 1807 г. назначен командиром 8-го егерского полка и 12 августа 1807 г. получил назначение шефом 10-го егерского полка. 26 ноября 1807 г. за беспорочную выслугу 25 лет в офицерских чинах был награждён орденом св. Георгия 4-го класса (№ 1840 по списку Григоровича—Степанова).
Со своим полком Иванов был с 1810 г. в турецкой кампании и 30 января 1811 г. участвовал во взятии штурмом Ловчи, занятии Сельви и окружении турецкой армии на левом берегу Дуная войсками Кутузова, за что был награждён алмазными знаками к ордену св. Анны 2-й степени и орденом св. Владимира 3-й степени.
В 1812 г. был назначен со своим полком в армию Тормасова и 15 июня 1812 г. участвовал в деле под Кобрином, где русские впервые одержали верх над французами; затем отличился при отступлении от Пружан к Городечне, в последнем бою он штыками проложил путь авангарду, отрезанному неприятелем от главных сил, и за это был награждён золотой шпагой с надписью «За храбрость». В бою под Березиной 14 ноября 1812 г. был тяжело ранен и, награждённый 16 июля 1813 г. чином генерал-майора (со старшинством от 16 ноября 1812 г.), на год оставил армию.
С августа 1813 г. снова сражался в составе Силезской армии, сменил Е. И. Маркова в должности командира 3-й бригады 9-й пехотной дивизии и принял участие в сражении под Дрезденом и при осаде Гамбурга, во время которой сбил неприятельские посты и батареи на укреплённом острове Вильгельмсберге, за что и был награждён 28 января 1814 г. орденом св. Георгия 3-го класса (№ 360)
С корпусом графа Воронцова оставался во Франции до 1818 г.
18 апреля 1823 г. Иванов был назначен начальником 16-й пехотной дивизии, 6 января 1826 г. был произведён в генерал-лейтенанты и 1 января 1827 г. получил в командование 19-ю пехотную дивизию. С началом русско-турецкой войны 1828 г. Иванов принял в ней участие; находился при осаде Браилова, в одном из дел под Шумлой получил тяжелую рану и через неделю, 10 августа, скончался.
Среди прочих наград Иванов имел ордена св. Анны 1-й степени и св. Владимира 2-й степени.