סוונסון החל לשחק בילדותו בקבוצה מקומית בעיר הולדתו, וכשהיה בן 14 הצטרף לקבוצת גטבורג. בשנת 2007 הוא סייע לקבוצה לזכות באליפות שוודיה, ואף היה מועמד לתואר השחקן הצעיר של העונה בשוודיה.
ב-1 בספטמבר 2010 חתם סוונסון על חוזה לשלוש שנים בבורסאספור הטורקית.
ב-7 ביולי 2012 חתם סוונסון על חוזה לשלוש שנים בטאבריה סימפרופול מליגת העל האוקראינית. ב-31 באוגוסט 2012 ערך סוונסון את הופעת הבכורה שלו בליגה. באותה העונה, במהלך פגרת החורף, קרע סוונסון את הרצועה הצולבת בברכו, ונאלץ לעבור תקופת החלמה ממושכת.
ב-23 במרץ 2014 חזר סוונסטו לקדנציה נוספת בגטבורג בה חתם על חוזה לארבע שנים.
ב-14 בינואר 2016 חתם סוונסון על חוזה לשלוש שנים במועדון הסיני גואנגג'ואו סיטי.
ב-30 בינואר 2017 חתם סוונסון בסיאטל סאונדרס האמריקאית.
לזכותו של סוונסון 24 הופעות במדי הנבחרת הצעירה של שוודיה, במדיה הופיע באליפות אירופה עד גיל 21 אשר נערכה בשוודיה בשנת 2009. באותו הטורניר כבש סוונסון את שערו היחיד במדי הנבחרת הצעירה במשחק נגד בלארוס במסגרת שלב הבתים.
ב-25 בינואר2009 ערך סוונסון את הופעת הבכורה שלו בנבחרת הבוגרת של שוודיה במשחק חוץ מול ארצות הברית אשר הסתיים בניצחון הנבחרת השוודית בתוצאה 2–3.
לאחר שהיה חלק מסגל נבחרתו בטורניר יורו 2020 ושותף במהלכו במשחק אחד, הודיע סוונסון על פרישה מהנבחרת.