Родился 14 июля 1927 года в деревне Старая Белица Гомельского р-на в семье служащих. В 1956 году окончил исторический факультет БГУ. Обучался в аспирантуре Института истории АН БССР (1959—1962).
Большое влияние на формирование исторического мировоззрения оказали: В. М. Игнатовский, А. Г. Митрофанов, Л. В. Алексеев. В 1965 году защитил кандидатскую диссертацию «Древний Полоцк (IX—XIII вв.)» (науч. рук. — В.Р. Тарасенко).
В 1983 году защитил докторскую диссертацию «Города Полоцкой земли IX—XIII вв.». Профессор с 1987 года. Работал учителем в школах Гродненской и Гомельской областей (1950—1959). Младший научный сотрудник, старший научный сотрудник, заведующий сектором и отделом (1962—2000), с 2000 года — главный научный сотрудник отдела археологии средневекового периода Института истории НАН Беларуси.
Возглавлял Белорусскую ассоциацию жертв политических репрессий (1992—1994). Член Белорусской социал-демократической партии (Народная Грамада). Председатель Национального комитета Международной унии славянской археологии, один из учредителей фонда «Память жертв сталинизма Беларуси». Лауреат Государственной премии Беларуси (1990). Подготовил двух докторов и 19 кандидатов наук.
Женат, имеет дочь.