Kelly Macdonald urodziła się 23 lutego 1976 w Glasgow, w Szkocji. Jej rodzice rozwiedli się, gdy była całkiem mała i razem ze swoim młodszym bratem została zabrana przez matkę do mieszkania komunalnego w miasteczku Newton Mearns. Kelly skończyła szkolę średnią w Eastwood. Kiedy była dzieckiem, jej rodzina często przeprowadzała się, częściowo z powodu złej sytuacji finansowej. Wyprowadziła się z domu, kiedy miała 17 lat. Uczyła się w college'u, mieszkając z przyjaciółmi w Glasgow, ale bardzo szybko rzuciła szkołę. Była zainteresowana zapisaniem się do szkoły aktorskiej, jednak bała się, że przez swoją nieśmiałość nie będzie w stanie się przystosować. W sierpniu 2003 wyszła za
Douglasa Payne'a, basistę zespołu Travis. Jej kariera rozpoczęła się, kiedy pracowała jako barmanka. Zgłosiła się na casting do filmu "
Trainspotting". Otrzymała rolę Diane i wystąpiła u boku
Ewana McGregora. Zagrała tez Piotrusia Pana w "
Marzycielu". Często występuje w serialach telewizyjnych.