По окончании института работал в театре «На Крюковом канале». Затем был принят в труппу Академического театра имени Ленсовета, где играл в спектаклях Ю. Бутусова «Войцек» (Капитан), «В ожидании Годо» (Поццо), «Калигула» (Геликон), «Клоп» (Присыпкин); в спектаклях В. Пази «Король, дама, валет» (Франц), «Братец Кролик на Диком Западе» (Братец Черепаха, Индеец), «Дама-призрак» (Косме).
Играл Расплюева в спектакле Ю. Бутусова «Смерть Тарелкина» (продюсерский центр «Брат»), Сирано в спектакле В. Шамирова «Сирано. Сцены из Ростана» (Независимый театральный проект).
На сцене Московского Художественного театра дебютировал в 2002 году в спектакле «Утиная охота». В 2003 году был принят в труппу МХТ.
Играл в спектаклях:
«Утиная охота» А. Вампилова (реж. А. Марин, 2002) – Официант, «Белая гвардия» М. А. Булгакова (реж. С. Женовач, 2004) — Мышлаевский, «Гамлет» В. Шекспира (реж. Ю. Бутусов, 2005) – Полоний, «Крейцерова соната» Л. Н. Толстого (реж. А. Яковлев, 2008) — Позднышев, «Трамвай Желание» Т. Уильямса (реж. Р. Феодори, 2014) — Стэнли Ковальский, «Заговор чувств» Ю. Олеши (реж. С. Женовач, 2021) — Андрей Петрович Бабичев.
В Театре п/р О. Табакова играл Мальволио в «Двенадцатой ночи» В. Шекспира (реж. М. Станкевич, 2013).
Лауреат премии «Созвездие», премии имени В. Стржельчика. За исполнение роли Позднышева в спектакле «Крейцерова соната» был удостоен премии Олега Табакова (2009). В 2017 г. удостоен театральной премии «Фигаро» в номинации «Самый лучший» за исключительные достижения в актёрском драматическом искусстве.