Родился в семье рабочего (по другим сведениям, мещанина). В феврале 1918 года вступил в Лебедянский конно-партизанский отряд, эта дата была принята за дату его поступления в Красную армию. Воевал на фронтах Гражданской войны, в 1921 году участвовал в подавлении Кронштадтского восстания. В 1921 году окончил артиллерийские командные курсы, в 1923 году — Высшую артиллерийскую школу. Командовал взводом, был помощником командира и командиром батареи, командиром артдивизиона в Ленинградском военном округе и в Белорусском военном округе.
В 1930 году окончил Военную академию имени М. В. Фрунзе. С 1930 года проходил службу в штабе Ленинградского военного округа. В апреле 1936 года переведён в Генеральный штаб, где занимал ряд должностей, а с марта 1940 года был заместителем начальника Оперативного управления Генерального штаба по тылу — начальником управления устройства тыла и снабжения. Генерал-майор (4.06.1940).
В этой должности вступил в Великую Отечественную войну. В первые месяцы войны направлен на Дальний Восток, служил начальником штаба 25-й армии Дальневосточного фронта, затем временно исполнял обязанности командующего 15-й армией того же фронта.
С июля 1942 года — заместитель начальника Генерального штаба РККА. Работал над планированием ведения боевых действий и крупных боевых операций Великой Отечественной войны. Неоднократно откомандировывался на фронт для практической помощи командованию фронтов и армий. Много работал в действующей армии в районе Сталинграда в период подготовки наступления советских войск в Сталинградской битве. В 1943 году был тяжело ранен в ходе очередной командировки в войска Юго-Западного фронта. Генерал-лейтенант (23.04.1943).
После Победы над Германией вторично направлен на Дальний Восток и в июле 1945 года назначен заместителем командующего войсками Забайкальского фронта (командующий Маршал Советского Союза Р. Я. Малиновский). Хорошо проявил себя в ходе Маньчжурской наступательной операции в августе 1945 года. По приказу командующего фронта подготовил и лично возглавил десантную операцию по захвату города и военно-морской базы Порт-Артур, проведенную 22 августа 1945 года. Был первым советским комендантом Порт-Артура.
В сентябре 1945 года В. Д. Иванов назначен заместителем командующего войсками Забайкальско-Амурского военного округа. Тогда же ему было присвоено воинское звание генерал-полковник (8.09.1945). Впоследствии вновь отозван в Москву, служил на должностях заместителя начальника Управления высших военно-учебных заведений Вооружённых Сил по научно-исследовательской работе, помощника командующего войсками Закавказского военного округа по высшим учебным заведениям, начальником штаба Ленинградского военного округа. В 1950 году окончил Высшую военную академию имени К. Е. Ворошилова.
В мае 1954 года был переведён в Войска противовоздушной обороны страны. С 1955 года — первый заместитель Главнокомандующего Войсками ПВО страны, с апреля 1956 года — командующий войсками Бакинского округа ПВО.
В августе 1959 года В. Д. Иванов был уже в третий раз направлен в Генеральный штаб и назначен сначала заместителем, а затем первым заместителем начальника Генерального штаба Вооружённых сил СССР. С 1965 года — начальник Военной академии Генерального штаба. Воинское звание генерал армии присвоено 5 мая 1961 года.
В апреле 1968 года назначен военным инспектором-советником Группы Генеральных инспекторов Министерства обороны СССР, но через несколько месяцев скончался.
Избирался депутатом Верховного Совета СССР 5-6-го созывов (1958—1966 годы).