Происхождение Давида неизвестно. В псковских летописях он называется князем. По мнению Татищева, был сыном князя псковского Довмонта. Впервые упоминается в хронике Дусбурга под 1314 годом как руководитель обороны Новогродка во время осады города тевтонцами: хотя сам город был сожжён, Давид отбил штурм замка и совершил вылазку в тыл орденского отряда, где захватил весь обоз с провиантом и амуницией и 1500 лошадей, в результате крестоносцы вынуждены были снять осаду и повернуть назад. В 1319 году возглавлял поход на Пруссию, в 1323 — на Добжиньскую землю. В том же году дважды помог Пскову в борьбе с датчанами и ливонскими рыцарями, вместе с псковитянами совершил опустошительный поход в Эстляндию (будучи избран псковским князем, Давид все же оставался в ВКЛ у Гедимина).
Первый историограф ВКЛ Мацей Стрыйковский писал, что Гедимин окружил Давида большими почестями, выдал за него свою старшую дочь (другими данными этот факт не подтверждается) и дал в лен особый удел. Детей не имел.
Примерно в 1324 был назначен гродненским каштеляном (старостой). В 1324 и 1326 годах во главе войск Великого княжества Литовского совершил удачные походы в Мазовию и Бранденбургскую марку. Во время последнего был убит в своем шатре одним из участвовавших в походе польских рыцарей Анджеем Гостом, вероятно, подкупленным крестоносцами. По легенде, похоронен в Гродно у стен Борисоглебской (Коложской) церкви, в начале XXI в. на предполагаемом месте установлен памятный камень-знак, его именем названа одна из улиц в центре города.