He made his first television appearance when he was 16 on Fox's Get Real. He had his first leading role in the 2002 film Rodger Dodger.
He played himself in the 2013 comedy film He's Way More Famous Than You.
His mother Amy dressed up as a clown at children's parties for a living and his father worked at a hospital. He dated Anna Strout from 2002 until they split in 2012. He then dated his The Double co-star Mia Wasikowska from 2013 to 2015. He later rekindled things with Strout; they married in 2017 and welcomed a son later that same year.
He starred alongside Aziz Ansari in the 2011 comedy 30 Minutes Or Less.