Родился 15 мая 1825 г. и 10 августа 1844 г. был выпущен из Пажеского корпуса прапорщиком в лейб-гвардии Егерский полк, с котором в 1849 году, во время осложнений в Венгрии, совершил поход к западным границам Российской империи.
С началом Восточной войны, Данилов был командирован в Дунайскую армию и назначен командиром 1-й роты Одесского пехотного полка. Во главе её Данилов принял участие в бою при Четати, в котором был контужен ядром и за отличие награждён орденом св. Владимира 4-й степени с мечами и бантом. Затем в рядах того же полка он принял участие в обороне Севастополя.
В 1859 г. Данилов был назначен в лейб-гвардии Семёновский полк. Произведённый в 1860 г. в полковники, Данилов в 1863 г. получил в командование Малороссийский гренадерский полк и участвовал с ним, находясь в составе войск Виленского военного округа, в усмирении польского мятежа.
1 октября 1868 г. Данилов был произведён в генерал-майоры с назначением помощником начальника 3-й гренадерской дивизии, в 1871 г. назначен членом комитета по устройству и образованию войск, 6 июня 1872 г. — зачислен в свиту его императорского величества и в 1877 г. назначен командующим 3-й гренадерской дивизией.
Во главе этой дивизии Данилов принял участие в войне с Турцией, и за бой 28 ноября 1877 г. под Плевной на следующий же день был награждён орденом святого Георгия 4-й степени
За переход через Балканы Данилов был удостоен ордена св. Владимира 2-й степени с мечами (в 1879 г.) и 16 апреля 1878 году был произведён в генерал-лейтенанты.
В 1884 г. Данилов был назначен начальником 1-й гвардейской пехотной дивизии, в 1888 г. — командиром 1-го армейского корпуса, в 1892 г. произведён в генералы от инфантерии, в 1896 г. — назначен членом военного совета и помощником командующего войсками Московского военного округа великого князя Сергея Александровича и в 1898 г. пожалован генерал-адъютантом к его императорскому величеству. Кроме того, Данилов состоял председателем Московского отдела Российского общества Красного Креста.
25 декабря 1903 г., в день 50-летия боя при Четати, Данилов, при особом Высочайшем рескрипте, был зачислен в списки 48-го пехотного Одесского полка и назначен шефом 1-й роты его.
Среди прочих наград Данилов имел ордена св. Станислава 1-й степени (1870 г.), св. Анны 1-й степени (1874 г.), Белого Орла (1880 г.) и св. Александра Невского с бриллиантовыми знаками.
Умер 17 января 1906 г. в Москве.