Густаф родился 12 ноября 1980 года в Стокгольме (Швеция) в семье знаменитого шведского актёра Стеллана Скарсгарда и врача Май Скарсгард (урождённая Мэй Сонья Мари Агнес). У Густафа есть четыре брата Александр Скарсгард (род. в 1976, тоже актёр), Сэм Скарсгард (род. в 1982), Билл Скарсгард (род. в 1990), Вальтер Скарсгард (род. в 1995) и одна сестра Эя Скарсгард (род. в 1992.)
Свою первую роль в кино сыграл, когда ему было девять лет в фильме «Täcknamn Coq Rouge» (Эрик Гамильтон). Отец Густафа играл в этом фильме главную роль.
С 1999 по 2003 обучался в Стокгольмской академии театрального искусства Teaterhögskolan. С 2003 года работал в театре, играл главные роли во многих постановках («Венецианский купец»). Продолжая играть в театре, принимал участие в ряде телевизионных постановок, а также снимался в кино.
Самая известная роль Густафа в 2002 году в фильме «Невидимый». В 2003 году снялся в фильме «Зло», который номинировался на премию «Оскар». В 2007 году был удостоен премии «Золотой жук» (шведский аналог премии «Оскар») за фильм «Дети окраин», а также дважды был на неё номинирован: в 2004 году за участие в фильме «Зло», и в 2009 за фильм «Патрик 1,5».