During her career she has taken roles in Elizabeth (1998), Gosford Park (2001), Intermission (2003), Nanny McPhee (2005), Harry Potter and the Deathly Hallows – Part 2 (2011), Anna Karenina (2012), T2 Trainspotting (2017), and Operation Mincemeat (2021).
On television, she won Primetime Emmy Award for Outstanding Supporting Actress in a Miniseries or a Movie for her role in the BBC One film The Girl in the Cafe (2005).
[3] She saw a leaflet advertising an open casting session for Trainspotting and decided to audition, winning the part of Diane,[4] the underage seductress to Ewan McGregor's Renton.
[6] She had major roles in Robert Altman's British period piece Gosford Park,[7] where she played an aristocrat's maid, and in Intermission (2003), as Deirdre.
[9] On television, her highest profile roles have been in two BBC dramas, the Paul Abbott serial State of Play (2003),[10] and the one-off Richard Curtis piece The Girl in the Café (2005).
[15] Other films where she had supporting roles include Choke (2008), adapted by Clark Gregg from the 2001 Chuck Palahniuk novel, as Paige Marshall; In the Electric Mist (2009) (based on James Lee Burke's In the Electric Mist with Confederate Dead (1993), as Kelly Drummond, alongside Tommy Lee Jones and John Goodman; and Skellig (2009), as Louise.
[20] In 2016, she played the lead role in "Hated in the Nation", an episode of the anthology series Black Mirror for which she received critical acclaim.
On 3 November 2016 Macdonald was featured in the trailer for Danny Boyle's T2 Trainspotting confirming she would reprise her role as Diane from the original film, which she did.