Duff was born in London on 8 October 1970, the younger of two children of Irish immigrants: her father, a painter and decorator at Fuller's Brewery in Chiswick, was from County Meath and her mother was from County Donegal and worked in a shoe shop.[3][4] The family lived in Southall, London, and Duff attended Mellow Lane School. While at school, she joined the school choir, where she discovered she could 'really sing'. She paid for singing lessons with a woman who taught classical singing, who made a huge impact. Duff initially thought about pursuing a career as a singer and talked about it in great depth with her teacher, who looked at her and said, 'I think you have the soul of an actor.'[5] At an early age, Duff attended a local youth theatre, Young Argosy, linked to the Argosy Players, in order to battle her shy nature; she soon became hooked on the stage. After further study of Film and Theatre, at the age of 19, she attended the Drama Centre in London, alongside John Simm, Anastasia Hille and her good friend Paul Bettany.[6]
Following her breakthrough, Duff ventured into films, first appearing in Notes on a Scandal, alongside Judi Dench. After film roles in Irish film Garage and The Waiting Room, she next appeared in a main role in comedy filmFrench Film and Is Anybody There? in 2008. In 2009, Duff received further attention when she played the mother of John Lennon, Julia Stanley, a role for which she won British Independent Film Award for Best Supporting Actress in Nowhere Boy. She also appeared in The Last Station, a biopic about Leo Tolstoy's later years, in which she played his devoted daughter Sasha. She appeared in less known film roles following this before her appearance in 2014 film Before I Go to Sleep. Throughout this time, Duff continued to appear on mainstream television in Parade's End, a five-part BBC/HBO/VRT television serial adapted from the tetralogy of eponymous novels (1924–1928) by Ford Madox Ford as Edith Duchemin and in BBC Onecrime dramaFrom Darkness which premiered in October 2015, appearing in the starring role. Of Duff's performance, Metro stated "Not a fan of police procedural dramas? Good, because this ain't that. From Darkness is a character-driven tale of one women's journey and resolve and it includes a bloody brilliant performance by Duff."[8]
In 2015, she played Violet Miller in the film Suffragette, a working-woman who introduces Maud Watts (Carey Mulligan) to the fight for women's rights in east London. "Violet is extraordinary, she's a firebrand - a tornado that comes into Maud's life and changes it forever. I found her thrilling," says Duff.
In 2016, Duff was cast in a new BBC animated miniseries of Watership Down, alongside her former husband James McAvoy. It premiered in December 2018; Duff appeared as Hyzenthlay. In 2019, Duff once again appeared with McAvoy in the BBC One and HBO adaption of Philip Pullman's His Dark Materials.
Duff married Scottish actor James McAvoy in 2006, and gave birth to their son in 2010.[12] On 13 May 2016, Duff and McAvoy announced they were divorcing.[13] To minimise disruption to their son's life, they initially shared a home in North London when not working elsewhere.[14]
She admits to being "a hopeless romantic. And that means sometimes I'll burn with pain as well as burn with desire, I will. 'Cos that's the nature of opening your heart up to someone else ... This sounds ironic, of course, but sometimes in a marriage you are never closer than the moment at which the two of you decide it's time to finish."[15]
Duff's father called her by the nickname Smudge when she was growing up.[16]