Utbildad på scenskolan i Malmö. Spelade i Angels in America I och II, Kaukasiska kritcirkeln och Skyfall på Stockholms Stadsteater. På TV har han medverkat i flera produktioner. Han har spelat i filmer som Tic Tac, Vägen ut, Tillsammans, Hem ljuva hem, Grabben i graven bredvid för vilken han fick en Guldbagge för bästa manliga huvudroll, Bäst i Sverige, Smala Sussi, Detaljer, Så som i himmelen, Dag och natt och spelade Mikael Blomkvist i filmatiseringen av Stieg Larssons Millenium-trilogi.
Har spelat i Noréns Personkrets 3:1, Under och Skuggpojkarna samt Primo Levis monolog Om detta är en människa, allt i regi av Lars Norén. På Dramaten har han medverkat i Å ena sidan på Elverket 2001, regi Peter Dalle och Jon Fosses Dröm om hösten 2002 regi Stefan Larsson, Erland Josephsons En natt i den svenska sommaren, regi Eva Bergman, Sofokles Antigone, regi Jasenko Selimovic, Bröderna Presnjakovs Terrorism, regi Stefan Larsson och McDonaghs Kuddmannen, regi Stefan Larsson.