Fraser is the daughter of Rose, a college lecturer and nurse, and Alister Fraser, a scriptwriter who also worked in business. She attended Hillhead High School and is a former member of the Scottish Youth Theatre. She then trained at the Royal Scottish Academy of Music and Drama.
Fraser's first big break was playing Door, in the BBC's dark fantasy series Neverwhere in 1996. She also starred in the 1998 BBC film The Tribe with Joely Richardson and Anna Friel, and played Lavinia in Titus (1999). Other notable film appearances were A Knight's Tale and Vanilla Sky (both in 2001). She has starred in the BBC period drama serials He Knew He Was Right (2004), Casanova (2005) and Reichenbach Falls (2007). She played one of the leads in the 2006 British comedy Nina's Heavenly Delights. In 2007, she appeared in the ITV series by Danny Brocklehurst called Talk to Me, in which she played the female lead, Claire Bellington.
Fraser starred in the title role of Florence Nightingale, a TV movie first broadcast on BBC One during the prime-time spot on 1 June 2008. Fraser has twice worked with Rupert Penry-Jones (in 1999's Virtual Sexuality and 2005's Casanova) and three times with David Tennant (in Casanova, He Knew He Was Right and the 2010 Single Father).
Fraser starred as Cat in the 2010 BBC Three series Lip Service. In December 2010, it was announced that she had been cast in the role of Jessica Brody in the pilot for Homeland. In May 2011, it was revealed that Fraser had been replaced for the series by Morena Baccarin. In June 2012, it was announced that Fraser had joined the final season of Breaking Bad, playing the character of Lydia. For the second series of Lip Service, shown in 2012, Fraser would not be available for long due to other commitments, so her character was killed off in the second episode.