Денис Капустин родился 5 октября 1970 года в Казани. Окончил Казанский педагогический университет.
В 1992 году был включён в лекгоатлетическую сборную России. В 1993 году дебютировал на мировом первенстве в Штутгарте, где с результатом 17 м 19 см занял шестое место. В 1994 году после успеха на чемпионате России последовал и успех на чемпионате Европы, Капустин выиграл европейское первенство в Хельсинки с отличным результатом 17 м 62 см.
На последующих трёх чемпионатах мира Капустину также не удалось завоевать медаль, в 1995 году в Гётеборге он стал десятым, в 1997 году в Афинах — четвёртым, а в 1999 году в Севилье — девятым. Единственным успехом для Дениса в этот период стало серебро европейского первенства 1998 года в Будапеште с результатом 17,45.
В 1998 году на соревнованиях в Осло Капустин установил личный рекорд — 17 м 65 см.
На Олимпийских играх 2000 года в Сиднее Капустин не фигурировал в числе фаворитов, однако соревнования сложились для него удачно. С результатом 17,46 он стал бронзовым призёром, сумев опередить многих сильных спортсменов, и всего один сантиметр уступил занявшему второе место кубинцу Жоэлю Гарсия.
В 2004 году Денис Капустин объявил о завершении спортивной карьеры. Проживает в Казани.