Hart was born in Knotty Ash, a town in Liverpool, England, one of three siblings, and was brought up in a Roman Catholic family. He attended the Cardinal Allen Grammar School and was in his teens a member of the Everyman Youth Theatre before studying drama at the now-defunct Mabel Fletcher College of Music and Drama in Liverpool. He then moved on and started acting in 1980.
From 1988 to 1991, Hart studied video production at South Mersey College (now part of Liverpool Community College). He portrayed an International Brigade volunteer in the Spanish Civil War in Land and Freedom (1995), an unemployed Liverpool shipyard worker in Liam (2000), and he played Professor Quirrell in Harry Potter, he also had the voice of the CGI-generated face of Voldemort in Harry Potter and the Philosopher's Stone (2001).
Hart has played John Lennon in three productions – as a 22-year-old Lennon a few months prior to the late 1963 British Invasion in The Hours and Times (1991), a slightly younger Lennon during The Beatles' 1960-62 Hamburg period in Backbeat (1994), and a 50-year-old Lennon (having avoided his true fate at age 40) in the Playhouse Presents television production Snodgrass (2013).
Hart played Sir Arthur Conan Doyle in the film Finding Neverland in 2004, having already played Doyle's creation Dr. Watson in a BBC One television film of The Hound of the Baskervilles in 2002, and reprising the role in 2004 in Sherlock Holmes and the Case of the Silk Stocking, with a different actor playing Sherlock Holmes.
He also played schizophrenic paparazzo Don Konkey in the FX series Dirt in 2007 and 2008.
In 2009 he played Tom Ripley in BBC Radio Four's adaptations of all five of Patricia Highsmith's Ripliad series.
Hart had an interesting audience interaction during the Duke of York's Theatre's 2009 production of Andrew Bovell's play Speaking in Tongues. After the performance on 23 November, Hart went into the audience and remonstrated with a man whom he had earlier told to "shut up" from the stage. Eyewitnesses say that Hart assaulted the audience member.
He also played Adolf Hitler in the BBC one-off drama The Man Who Crossed Hitler, which aired in August 2011.
- Both he and Freddie Highmore had roles in the 2004 film Finding Neverland. He played Sir Arthur Conan Doyle while Highmore portrayed the young Peter Llewellyn Davies.
- He was replaced in Season 3 of Bates Motel by Welsh actor Andrew Howard as he was unable to reprise his role due to his busy acting schedule.