Выступал за молодёжные команды «Динамо» из Тбилиси и «Мешакре» из Агары. В июле 2006 году попал в академию клуба «Фрайбург». В сезоне 2007/08 молодёжная команда «Фрайбурга» стала чемпионом Германии до 19 лет.
В основном составе «Фрайбурга» дебютировал 28 сентября 2008 года в выездном матче против «Алемании» (1:0). В том матче Таргамадзе появился на поле на 76 минуте матча, выйдя на замену вместо Томми Бехманна. По итогам сезона 2008/09 «Фрайбург» смог выиграть Вторую Бундеслигу и выйти в Первую Бундеслигу, Таргамадзе в том сезоне сыграл 6 матчей. Летом 2009 года появилась информация о том, что он может быть сдан в аренду швейцарскому «Аарау», но переход так и не состоялся. В Первой Бундеслиге дебютировал 12 сентября 2009 года в домашнем матче против «Айнтрахта» (0:2), Таргамадзе вышел на поле на 81 минуте, заменив Ивицу Бановича. В мае 2010 года клуб расторг с ним контракт, в его услугах был заинтересован клуб «Карлсруэ», в котором он прошёл до этого уже 2 просмотра. В октябре 2010 года футболист подписал контракт с командой Первой лиги Украины — «Александрией». В составе команды дебютировал 10 октября 2010 года в выездном матче против «Львова» (0:3), Давид Таргамадзе вышел на поле на 63-й минуте вместо Валерия Иващенко, а на 76 минуте матча он забил гол в ворота Александра Мусиенко. 8 июля 2011 года сыграл первый матч украинской Премьер-Лиге, в котором отличился голом.
30 декабря футболист заключил пятилетний контракт с донецким «Шахтёром».
31 декабря стало известно, что Давид будет защищать цвета ФК «Ильичёвец» на правах аренды. Контракт с футболистом вступает в силу 1 января 2012 года.
В составе юношеской сборной Грузии сыграл 6 матчей. За молодёжную сборную Грузии он сыграл 3 матча. За первую сборную Грузии он сыграл 4 матча, в каждом из которых по оценкам экспертов удостаивался звания «игрок матча». Первый гол за сборную забил на 19 минуте матча со сборной Греции.
Его брат, Иракли Таргамадзе, также профессиональный футболист.