Developed at Lagans, Krafth had played for Öster, Helsingborg and Bologna, before joining Newcastle United in 2019.
[6] When he was fifteen years old, Krafth moved out of his parents’ house to Växjö, attending a football high school there and said it was easy to adapt.
[11] He quickly became a first team regular for the side, playing in either the defender ad midfield positions and impressed in his first season in the Superettan.
[16] Krafth appeared as an unused substitute in Helsingborgs’ first match of the 2012 season, in a 2–0 win over AIK in the Svenska Supercupen.
[20] However, Krafth suffered an injury that kept him out for weeks and didn't make an appearance until on 28 July 2012 against IFK Norrköping, where he set up the club's only goal of the game, losing 2–1.
[21] Krafth then made his UEFA Europa League debut, starting a match and played 65 minutes before being substituted, in a 3–1 loss against Levante on 22 November 2012.
It was announced on 19 August 2015 that Krafth swapped Sweden for Italy as he joined Serie A outfit Bologna.
[45] It wasn't until on 24 October 2015 when he made his Bologna's debut against Carpi, starting a match and played 42 minutes before being substituted, due to a knee injury, as they won 2–1.
[46] Following this, it was announced that Krafth was sidelined for the rest of the year after suffering another injury while on international duty with Sweden U21, and continued to do for the first four months of 2016.
Following this, Krafth said: "I didn't have a lucky season: the recovery from my injury was longer than expected and it kept me out for a long time.
"[50] Krafth started in the first four league matches of the 2016–17 season in the right–back position before being sent–off for a straight red card in the 81st minute, losing 3–1 against Napoli on 17 September 2016.
[51] After serving a one match suspension, he returned to the starting line–up against Inter Milan on 25 September 2016 and played 80 minutes before being substituted, as Bologna drew 1–1.
[54] Following this, Krafth found himself in and out of the starting eleven for the side, competing with Vasilis Torosidis and Ibrahima Mbaye over the right–back position.
It was later revealed his first team opportunities at Bologna was limited, due to his lack of tactical acumen to succeed in Italy.
[66][67] Krafth made his Amiens SC debut, coming on as a late substitute, in a 2–1 loss against Montpellier on 18 August 2018.
[72][73] Later in the 2018–19 season, he later helped Amiens finish in 15th place on the table and secured their survival after a 2–1 victory over already relegated EA Guingamp.
[79] Following this, he was dropped to the substitute bench when manager Steve Bruce began using Javier Manquillo and DeAndre Yedlin.
[83] When the season was suspended because of the COVID-19 pandemic, he made fourteen appearances for Newcastle United and recovered from the injury.
[84] Once the season resumed behind closed doors, Krafth didn't make an appearance until on 1 July 2020 when he started the whole game, in a 4–1 win against Bournemouth.
On 14 May 2021, Krafth scored his first Newcastle goal in a 3–4 home league defeat to champions Manchester City.
[94] However during a 2–2 draw against Denmark U21 on 11 June 2015, he suffered a back injury that kept saw him miss the UEFA European Under-21 Championship and Sweden U21 went on to win the tournament.
[95] A year later on 3 June 2016 against Georgia U21, Krafth scored the U21 side's second goal of the game, in a 3–2 win, which turns out to be his last appearance for Sweden U21.
[97] He made his debut for Sweden against Moldova, coming on as an 85th-minute substitute, and set up the national's side goal for Erton Fejzullahu, who scored twice, in a 2–1 win on 17 January 2014.
[10][98] After a two-year absence from the national team, Kraft was called up to the Sweden's squad for the second time, appearing as an unused substitute against Netherlands and Luxembourg.
[100] The following year on 10 November 2017, Kraft played 83 minutes in the 2018 FIFA World Cup Second Round Play-Off first leg, as Sweden won 1–0 against Italy at the Friends Arena.
[101] On 13 November 2017, he appeared as an unused substitute in the game where Sweden held on to force a goalless draw in the second leg at the San Siro to defeat the Italians 1–0 on aggregate in their Russia 2018 World Cup play-off.
[105] Following a suspension of Mikael Lustig, he started in the quarter–finals against England and played 85 minutes in the match before being substituted, as they lost 2–0, eliminating Sweden from the tournament.