Macdonald was born in Glasgow, Scotland. Her mother was a garment industry sales executive. Her parents divorced when she was young. She and her younger brother were raised by her mother on a council estate in the town of Newton Mearns. Macdonald attended Eastwood High School. Her family moved around frequently when she was a child.
Macdonald moved away from home when she was 17 years old. She took a college course in modern studies while living with a friend in Glasgow, but she soon dropped out of the class.
Macdonald's career began while working as a barmaid. She saw a leaflet advertising an open casting session for Trainspotting and decided to audition, successfully winning the part of Diane, the underage seductress to Ewan McGregor's Renton. Other roles include a reporter in The Hitchhiker's Guide to the Galaxy and an actress playing Peter Pan in Finding Neverland. She also had a major role in Robert Altman's British period piece Gosford Park, where she played a maid.
On television, her highest-profile roles have been in two BBC dramas, the Paul Abbott serial State of Play (2003) and the one-off Richard Curtis piece The Girl in the Café (2005). Both of these were directed by David Yates, and both also starred Bill Nighy. For her performance in The Girl in the Café, Macdonald was nominated for a Golden Globe in 2006, and won an Emmy.
Macdonald starred in the 2005 film Nanny McPhee, as the scullery maid Evangeline, and A Cock and Bull Story, where she plays the girlfriend of actor Steve Coogan's onscreen alter ego. In 2007, Macdonald was cast in the Coen Brothers' Academy Award-winning No Country for Old Men, in which she played the wife of the film's protagonist. Macdonald's agent originally wasn't sure she was right for the part, and Macdonald is reported as having to "fight for the role". Her persistence paid off, however, as she was nominated for a BAFTA for best supporting actress. In 2008, she played Dr. Paige Marshall in the film Choke, adapted by Clark Gregg from the 2001 Chuck Palahniuk novel.
[[File:|thumb|right|Macdonald at the 2007 Toronto International Film Festival]]
|1996||Trainspotting||Diane Coulston||Nominated for a Scottish BAFTA award|
|Stella Does Tricks||Stella|
|1997||Dead Eye Dick||Wendy||Short film|
|1998||Cousin Bette||Hortense Hulot|
|The Loss of Sexual Innocence||Susan|
|My Life So Far||Elspeth Pettigrew|
|2000||Two Family House||Mary O'Neary||Nominated for an Independent Spirit Award|
|Gosford Park||Mary Maceachran|| Satellite award with the rest of the cast
Screen Actors Guild Award with the rest of the cast
Broadcast film award with the rest of the cast
FFCC award with the rest of the cast
OFCS award with the rest of the cast
Nominated: Empire Award
Nominated: PFCS award with the rest of the cast
|2004||Finding Neverland||Peter Pan|
|2005||The Hitchhiker's Guide to the Galaxy||Reporter|
|All the Invisible Children||Jonathan's wife||Segment: Jonathan|
|2006||A Cock and Bull Story||Jenny|
|2007||No Country for Old Men||Carla Jean Moss|| Screen Actors Guild Award with the rest of the cast
Nominated: London Film Critics Choice Awards
|2008||The Merry Gentleman||Kate Frazier|
|Choke||Paige Marshall||Sundance Film Festival Award|
|2009||In the Electric Mist||Kelly Drummond|
|1996||Flowers of the Forest||Amy Ogilvie||BBC TV-Movie|
|1999||Tube Tales||Emma||Segment: Mr Cool|
|2003||Brush with Fate||Aletta Pieters||CBS TV-Movie|
|State of Play||Della Smith|
|2005||Alias||Kiera MacLaine/Meghan Keene||Episode: Ice|
|The Girl in the Café||Gina|| BBC TV-Movie|
Nominated: Golden Globe
Golden Globe Awards
Independent Spirit Awards
London Film Critics Circle Awards
Online Film Critics Society Awards
Phoenix Film Critics Society Awards