1997年,拍攝首部電視劇《城市邊緣人》。1998年,出演家庭情感劇《母親》。1999年,出演陳道明主演的古裝劇《紹興師爺》;同年,主演都市電影《夏日暖洋洋》,該片通過出租車司機德子的壹段情感經歷描述了壹個年輕人眼中的另類社會,他也因此獲得第8屆北京大學生電影節最佳男主角提名 。
2000年,出演刑偵警匪劇《重案六組》,飾演殺父弒母的秦壹鳴 。2003年,主演黑色幽默電影《武松打我》,飾演武松迷導演門德松,獲得布魯塞爾國際獨立電影節最佳男演員獎 。2004年,出演改編自真實故事的犯罪題材電視劇《追妳到天邊》,飾演反派吳大龍 ;同年,出演金琛執導的愛情劇《愛在左,情在右》。
2005年,在孫紅雷、陳小藝主演的家庭劇《半路夫妻》中飾演大蜘蛛。2006年,出演青春情感劇《與青春有關的日子》,飾演“北京混混”劉會元。
2007年3月30日,在青春情感劇《我們無處安放的青春》中飾演王勃,劇中與張歆藝產生情緣。6月2日,出演家庭倫理劇《張禮紅的現代生活》,飾演性格分裂又異常聰明的精神病患者劉流 。11月30日,在戰爭愛情題材電影《鳳凰》中飾演丁根。
2008年8月18日,出演孫寧、王學兵主演的家庭劇《忘不了》。10月11日,主演“死間”題材的諜戰劇《長江壹號》,飾演高級特工伍先明,看似風流倜儻、玩世不恭,卻文武全才、有著不為人知的辛酸與悲哀 。12月24日,出演改革開放題材電視劇《深圳灣》,他飾演的趙可家歷盡艱辛成為青年實業家 。
2009年7月18日,出演奚美娟主演的家庭情感劇《愛有多遠》,他在劇中飾演的葉祖輝是葉家老大,從小頑皮、但卻有擔當 。12月23日,在家庭情感劇《成家立業》中飾演混跡江湖的二蛋子 。
2010年1月30日,在王寶強主演的抗戰劇《為了新中國前進》中飾演趙連長,粗人壹個的他有著真摯熱情的壹面 。8月13日,出演改編自同名小說的黑色幽默風格電視劇《我叫劉躍進》,飾演小偷“青面獸楊誌” 。8月20日,主演“11度青春電影行動”的第壹部短片《拳擊手的秘密》。10月5日,在抗戰劇《夢想光榮1942》中飾演喜劇角色土匪小彪子 。
2011年4月26日,在甄子丹主演的古裝動作電影《關雲長》中飾演五關六將中的卞喜 。8月3日,出演諜戰劇《暗紅1936》,劇中飾演特務科長胡漢良,充滿“柔情與心機”的角色 。8月12日,在警匪劇《生死大營救》中飾演心思縝密的高智商犯罪分子武陽 。
2012年3月14日,出演家庭情感劇《媳婦是怎樣煉成的》 。5月,出演的由張譯、李晨主演的戰爭劇《好家夥》開機,飾演高泊飛 。7月6日,出演陳凱歌執導的都市電影《搜索》 。10月20日,在胡軍、李雪健主演的軍事題材電視劇《孤軍英雄》中飾演老兵葛存金 。
2013年5月3日,在情感懸疑劇《天亮請睜眼》中再度演繹反派劉天昊,暗箱操縱著販毒業 。
2014年3月21日,與廖凡、桂綸鎂***同出演犯罪愛情電影《白日焰火》,飾演為了追求真相不惜代價的刑警小王 ,該片獲得了柏林電影節最佳影片金熊獎 ,他也憑借該角色獲得了第12屆中國長春電影節最佳男配角提名以及第15屆華語電影傳媒大獎最佳男配角提名 。6月4日,客串年代情感劇《別叫我兄弟》 。8月5日,出演情感劇《約會專家》 。9月26日,在趙薇、黃渤主演的打拐題材溫情電影《親愛的》中再度演繹警察角色飾演劉向東,尋找拐賣兒童的民警 。12月21日,在範冰冰主演的古裝劇《武媚娘傳奇》中飾演李義府,出身卑微但審時度勢的小人,助力武皇執掌天下 。
2015年7月1日,與楊坤合作拍攝的拳擊題材電影《冠軍的心》開機 。9月30日,出演改編自真實故事的犯罪片《解救吾先生》,在片中飾演綁匪阿倉,與劉德華有不少對手戲 。10月,出演的劇情片《喊·山》作為閉幕影片亮相釜山國際電影節 。12月24日,在馮小剛主演的動作電影《老炮兒》中飾演小偷 。12月29日,出演講述歷史人物張學良壹生的年代劇《少帥》,與文章、李雪健、宋佳等合作,劇中飾演民國梟雄楊宇霆,精於謀略、心機頗深 。
2016年2月,獲邀助陣東方衛視明星喜劇競賽真人秀節目《歡樂喜劇人》,攜手秦昊上演舞臺版《老炮兒》 。