[3] Petrie spent his early career in theatre around the country before joining the RSC where productions included Shakespeare's Troilus and Cressida and Henrik Ibsen's Brand opposite Ralph Fiennes.
In 2005, he joined the National Theatre, where he stayed for 28 months performing in His Dark Materials, Shakespeare's Henry IV alongside Sir Michael Gambon and David Edgar's Playing With Fire.
Petrie appeared as Philip Lisle in The Bank Job, as Felix Finch in the 2012 film Cloud Atlas, as [5] Stirling Moss in Rush, and as General Davits Draven in Rogue One: A Star Wars Story.
[6][5] Also in television, Petrie has portrayed Geoff in Channel 4's Utopia, Alexander "Sandy" Langbourne in The Night Manager, and Robert Greenlaw in BBC1's Undercover.
He played the role of Major James Sholto in the second episode of Season 3 of the BBC TV series Sherlock, which aired on 5 January 2014.