Macfadyen was born in Glasgow, Scotland and lived a colourful childhood, being brought up in such places as the Philippines, Africa, Singapore and France. His father was a doctor in the World Health Organization. Macfadyen attended the University of Edinburgh and the Central School of Speech and Drama in London.
Macfadyen's first role was Philip in the film made for television The Lost Language of Cranes (1991). He portrayed a young man who must tell his parents that he is gay. Playing the role of his father was fellow Scottish actor Brian Cox. Macfadyen then acted in the television film 15: The Life and Death of Philip Knight (1993) and also on the television series Takin' Over the Asylum (1994) about a salesman who runs a radio station in a mental institution. That role led to his role as Robert the Bruce in Mel Gibson's film Braveheart (1995).
After Braveheart won Best Picture at the Academy Awards, Macfadyen acted in the independent film Nevada (1997), before giving the most over-the-top performance of his career in the action/fantasy Warriors of Virtue (1997). He also co-starred alongside Don Cheadle and Ray Liotta when he played Peter Lawford in the HBO film The Rat Pack (1998).
Macfadyen played Orson Welles in Tim Robbins's third directorial film Cradle Will Rock (1999). Although the film received a nomination for the Palme d'Or at Cannes, it was a financial flop. Macfadyen next made the Shakespearan film Titus (1999), alongside Anthony Hopkins, where he played Lucius, eldest son of Titus Andronicus. Directed by Julie Taymor, the film was a critical triumph but with mediocre box office results.
After the noir film Second Skin (2000), Macfadyen acted in a number of poorly received films. One such film was the action film Styx (2001) which starred Peter Weller. A year later, he acted in the comedy film Divine Secrets of the Ya-Ya Sisterhood (2002) alongside a number of famous names: Sandra Bullock, Ellen Burstyn, Maggie Smith and Ashley Judd. That same year, Macfadyen took the role of Vice-Counsel Dupont in Equilibrium (also 2002). The film, also starring Christian Bale, Sean Bean, Taye Diggs and Emily Watson, is set in the future, where a fascist regime forbids all emotions.
Macfadyen acted as Marcus Crassus in a TV mini-series of Spartacus (2004), the character of Bill in The Pleasure Drivers (2005), and the lead in the dramatic film The Virgin of Juarez (2006). He then played the pirate Blackbeard in a television film of the same name.
His next big role was that of Jeff Denlon in Saw III (also 2006). Jeff is a man obsessed with revenge, and he is led into a series of traps that test his ability to forgive. The film was a smash hit for its $10 million budget, earning almost $200 million worldwide. Macfadyen then co-starred in the box office bomb Redline and Saw IV (both 2007), which was also a box office success.
Macfadyen continued making films, starring as the outlaw Will Tunney in his western film Shadowheart (2009). He has appeared on television on the series Killer Wave (2007) and Californication (2008) He has also acted in the mystery film San Saba (2008) and the thriller film Clean Break (aka, Unnatural Causes, 2008).
Macfadyen has appeared in two thrillers: Pound of Flesh (2010) alongside Malcolm McDowell which revolves around a corrupt college professor, and the crime thriller Shadows of the White Nights (aka, Assassins Run, 2013) alongside Christian Slater. He starred as Lucas Blackstone in the Christian film Taken by Grace (also 2013). Additionally, Macfadyen was part of the cast of the USA Network's television series Psych, the Cameron Crowe feature film We Bought a Zoo (2011) starring Matt Damon, and the final season of Chuck as villain Nicholas Quinn.
Macfadyen also starred as Robert Rogers in AMC's historical drama series Turn: Washington's Spies (2014–17), and Allan Pinkerton on the first-run syndicated series The Pinkertons (2014–15). Macbeth: Unhinged (2016) is a modernised feature-length film adapted from the Shakespearean play in which he stars and directs.