Родился 17 сентября 1841 года и по окончании Александровского кадетского корпуса был выпущен 16 июня 1859 года прапорщиком в 9-ю артиллерийскую бригаду. 26 августа 1863 года произведён в подпоручики.
В 1864 году закончил курс в Николаевской Академии Генерального штаба, служил на разных штабных должностях в войсках Оренбургского края. 25 августа 1865 года получил чин поручика, 30 августа 1867 года произведён в штабс-капитаны и 30 августа 1869 года — в капитаны. В 1870—1871 года Иванов принимал участие в военных действиях против Шахрисябзского бека Джурабека.
В 1873 году участвовал в Хивинской экспедиции, награждён орденами св. Владимира 4-й степени с мечами и бантом и св. Станислава 3-й степени с мечами (оба в 1874 году), был командирован в Санкт-Петербург и принял участие в составлении описания Хивинского похода. 31 марта 1874 года произведён в подполковники и с 13 декабря того же года по 23 апреля 1876 года командовал 3-м Туркестанским линейным батальоном.
27 марта 1877 года произведён в полковники и 30 июня 1878 года назначен начальником штаба 6-й резервной пехотной дивизии, с 9 декабря того же года находился на такой же должности в 34-й пехотной дивизии.
В 1880—1881 годах принял участие в Ахал-Текинской экспедиции, в 1882 году за отличие награждён золотым оружием с надписью «за храбрость». С 22 июня 1882 года по 15 июня 1887 года Иванов заведывал Азиатской частью Главного штаба.
Произведённый 6 мая 1887 года в генерал-майоры, Иванов с 15 июня 1887 года занимал пост военного губернатора Семиреченской области и наказного атамана Семиреченского казачьего войска. 14 мая 1896 года получил чин генерал-лейтенанта.
Умер в 1899 году.