1995년부터 연기를 시작해 서울예술대학에 재학 중이던 1997년 잠뱅이의 모델로 발탁되었다. 2000년SBS 톱 탤런트 선발 대회에서 본상을 수상하며 SBS 공채 9기 탤런트가 되었으며. 이후 SBS 《온리 유》, 《백만장자와 결혼하기》등 여러편의 드라마에 꾸준히 출연했으나 큰 주목을 받지 못했다.
오랜 무명 생활을 거쳐 2007년부터 본격적으로 주목받기 시작했다. MBC 드라마 《하얀거탑》에서 장준혁(김명민)의 오른팔인 박건하 역할, 《이산》에서 조선 정조대의 권세가인 홍국영 역할을 잇따라 맡으며 주목받았다. 이로 인하여 데뷔 10년여 만인 2007 MBC 연기대상에서 신인상을 수상하였다. 이후 《솔약국집 아들들》, 《천사의 유혹》, 《결혼해주세요》등 이어서 출연한 드라마들이 모두 성공했고, 2011년 《뿌리깊은 나무》에선 밀본의 조직원이자 이후 밀본의 수장이 되는 심종수 역할을 맡았다. 《이산》에서 이병훈 PD와 맺은 인연으로 2012년 드라마 《마의》에선 현종을 맡아 열연했다. 2019년2월 11일에 첫 방송된 새 월화드라마 《해치》에서 위병주 역으로 출연했다. 2019년7월 29일에 《검법남녀 2》 후속 드라마인 새 월화드라마 《웰컴 2 라이프》에 강윤기 역으로 출연했다.