Дмитрий Ульянов окончил Уральскую консерваторию у профессора В. Ю. Писарева и в том же году получил Гран-при на I Международном вокальном конкурсе под эгидой ЮНЕСКО в Казахстане (2000).
В 1997 году стал солистом Екатеринбургского театра оперы и балета, через год – Московского театра «Новая Опера» имени Е. В. Колобова. С 2000 года – солист Московского академического Музыкального театра имени К. С. Станиславского и В. И. Немировича-Данченко, на сцене которого исполняет ведущие партии: Дон Жуан в одноименной опере, Дон Базилио в «Севильском цирюльнике», Рамфис в «Аиде», Коллен в «Богеме», Герман в «Тангейзере», Гремин в «Евгении Онегине», Гудал в «Демоне», Голова в «Майской ночи», Иван Хованский в «Хованщине», Кутузов в «Войне и мире» и другие роли. В составе труппы театра гастролировал во многих городах России, а также в Германии, Италии, Латвии, Эстонии, Китае, Южной Корее, США, на Кипре.
С 2009 года Дмитрий Ульянов – приглашённый солист Большого театра, где дебютировал в партии Доктора в опере «Воццек» (режиссёр Д. Черняков, дирижёр – Т. Курентзис). В 2014-м исполнил здесь партии Эскамильо в «Кармен» и Филиппа II в «Доне Карлосе», в 2016-м – Бориса Тимофеевича в «Катерине Измайловой». Также артист сотрудничает с театрами Петербурга, Новосибирска, Перми, Чебоксар.
Активно развивается международная карьера певца: Опера Бастий, Национальная Рейнская опера, театр Капитолия Тулузы, Фламандская опера, Национальная опера Нидерландов, Королевский театр в Мадриде и Маэстранса в Севилье, Большой театр «Лисео» в Барселоне, Израильская опера, Новый национальный театр Токио, оперные театры Лиона, Базеля, Монте-Карло, Бильбао, Кальяри, Марселя – перечень ведущих оперных домов растет с каждым годом. Он выступает на фестивалях в Ла-Корунье и Экс-ан-Провансе; сотрудничает с дирижёрами Айвором Болтоном, Мартином Браббинсом, Юраем Валчухой, Лораном Кампеллоне, Кириллом Карабицем, Станиславом Кочановским, Корнелиусом Майстером, Томашем Нетопилом, Даниэлем Ореном, Ренато Палумбо, Айнарсом Рубикисом, Джакомо Сагрипанти, Михаилом Татарниковым, Джузеппе Финци, Педро Халффтером, Томашем Ханусом, Симоной Янг, Марисом Янсонсом; с режиссёрами Василием Бархатовым, Жаном-Луи Гриндой, Каролиной Груббер, Хосе Антонио Гутьерресом, Татьяной Гюрбача, Петером Конвичным, Андреасом Кригенбургом, Эриданом Ноублом, Дэвидом Паунтни, Лораном Пели, Эмилио Саги, Питером Селларсом.
В репертуаре артиста – главные партии в операх Верди («Макбет», «Дон Карлос», «Риголетто», «Сицилийская вечерня»); Вагнера («Валькирия», «Тангейзер», «Летучий голландец»); во французских «больших операх» («Иудейка» Галеви, «Гугеноты» Мейербера), в операх русских композиторов («Борис Годунов», «Иоланта», «Золотой петушок», «Игрок»).
Дмитрий Ульянов активно концертирует, сотрудничает с Госкапеллами – хоровой имени А. Юрлова и симфонической под руководством В. Полянского.
В сезоне 2017/18 певец дебютировал в партии Бориса Годунова в Большом; впервые исполнил Аттилу – на фестивалях «Опера Live» в Зале имени Чайковского в Москве и вердиевском – в Концертном зале Лиона. Также прошли дебюты на Зальцбургском фестивале, на сценах неаполитанского театра «Сан-Карло» и Венской оперы.
В 2018/19 Д. Ульянов выступает в новых постановках опер «Леди Макбет Мценского уезда» в Парижской национальной опере и Опере Бастий (дирижёр – Инго Метцмахер, режиссер – Кшиштоф Варликовский), «Севильский цирюльник» в ГАБТе (дирижёр – Пьер Джорджо Моранди, режиссёр – Евгений Писарев); на сцене амстердамского Консергебау исполняет «Песни и пляски смерти» Мусоргского, а в Национальном центре исполнительских искусств в Пекине поёт в опере «Сказки Гофмана».
Артист дважды номинировался на премию «Золотая маска» в категории «лучшая мужская роль в опере». В 2016-м награждён российской оперной премией “Casta Diva” за исполнение партии Ивана Хованского.