Початкове навчання футболу проходив у київському РВУФК, після чого продовжив заняття в «Динамо».
Дебютував у складі нашої команди в чемпіонаті України U-19 13-го березня 2016 року у виїзному поєдинку проти донецького «Шахтаря», який закінчився розгромом суперників – 4:1.
Перший гол за «біло-синіх» у юніорській першості країни забив 19-го квітня 2016 року в домашній грі з донецьким «Олімпіком» (3:1).
- Цей забитий гол став для мене важливою подією. Пішла подача з флангу, я у штрафний вийшов на м'яч і відправив його у ворота. Він не став випадковим. Подібний розіграш ми часто відпрацьовуємо на тренуваннях. Щоразу залишаємося після основного заняття і відпрацьовуємо «стандарти».
За підсумками сезону 2015/16, узявши участь у шести зустрічах, став чемпіоном України U-19.
Прем'єрну гру в турнірах під егідою УЄФА провів за збірну України (U-17) 26-го жовтня 2015 року у відбірному матчі чемпіонату Європи проти Молдови (1:1).
У серпні 2017 року отримав важку травму коліна, яка вивела його з гри на тривалий період. Повернутися на поле Денис зміг лише в квітні 2018-го, почавши отримувати ігровий час в матчах чемпіонатів U-19 та U-21.
Чекати на дебют у першій команді довелося рік. Свій перший поєдинок у Прем’єр-лізі центральний захисник провів 13 квітня 2019 року, допомігши «біло-синім» перемогти на виїзді «Маріуполь» (1:0) – Денис провів на полі всі 90 хвилин.
А вже в травні у складі молодіжної збірної України U-20 вирушив на чемпіонат світу, що проходив у Польщі, та виборов звання чемпіону світу. Динамівець зіграв у фінальній частині шість матчів із семи (окрім фінального, який пропускав через дискваліфікацію за вилучення), в яких відзначився трьома забитими м’ячами – більше (чотири) у складі нашої збірної вдалося забити лише нападнику Данилу Сікану.
Перемога на світовій першості та чемпіонське звання додало впевненості молодому захиснику, і у сезоні 2019/2020 він став гравцем першої команди. У своєму дебютному сезоні в основі Денис провів 22 матчі у всіх турнірах за «біло-синіх», а його гол у ворота «Шахтаря» в додатковий час матчу 1/8 фіналу Кубка України дозволив динамівцям вибити принципового суперника з турніру на шляху до трофея, який «біло-сині» завоювали в кінці сезону.
Дебютний гол у єврокубках забив у груповому турнірі Ліги чемпіонів-2020/2021, відзначившись у домашньому поєдинку з «Ференцварошем» (1:0). Саме завдяки точному удару Дениса «Динамо» посіло у групі третє місце та продовжило свій виступ у весняній частині Ліги Європи.
Успіхи Попова в клубі не залишилися непоміченими в національній команді, і захисник потрапив до розширеної заявки збірної України для підготовки до участі на Євро-2020. Дебютував за «жовто-синіх» у травні 2020-го в товариському матчі з Бахрейном (1:1). Був включений до остаточної заявки збірної на чемпіонат Європи, але не провів жодного матчу.
Наразі Денис є основним центральним захисником «Динамо», провівши за першу команду «біло-синіх» більше 100 матчів. Могло бути значно більше, але в силу своєї манери гри – самовідданої, без оглядки на власну безпеку – Попов, буває, отримує пошкодження, через які вимушений пропускати певний час, перебуваючи на лікарняному. Утім, маючи сталевий характер, центрбек кожного разу повертається на поле на свою звичну позицію, із новими силами та притаманною йому завзятістю працюючи заради досягнення командних та особистих цілей.