Димитр Гешов родился в Свиштове в 1860 году, добровольцем в составе 55-го пехотного полка русской армии участвовал в русско-турецкой войне 1877—1878 годов. Военное образование получил также в России в Одесском юнкерском училище. После этого вернулся в Болгарию и начал службу в болгарской армии. Во время сербско-болгарской войны командовал ротой. Участвовал в боях за Пирот и Брезник. В 1902 году назначается командиром пехотного полка, с 1903 года командир пехотной бригады. В Первой Балканской войне командовал бригадой и особо отличился в боях с турками, после чего назначен командиром 2-й пехотной дивизии, с которой также участвовал в боях у Смоляна. Во Второй Балканской войне участвовал в боях при Криволаке.
После вступления Болгарии в Первую мировую войну, Гешов успешно командовал дивизией в сражениях при Криволаке, Дойране и на Салоникском фронте. В декабре 1916 года назначается командующим 1-й болгарской армией. Гешов командует подразделениями армии в районе реки Вардар и озера Дойран. В начале 1918 года из-за болезни смещён с поста командующего армии и направлен на тыловую службу. После окончания Первой мировой войны стал инспектором пограничных войск и в 1919 году вышел в отставку. Умер в Софии в 1922 году.