Gustavsson started his professional career with
AIK in 2002 and played with them until 2007. He then moved to
Färjestad BK in the
Elitserien. He was the top goalie in
2008–09, when he posted a 1.96
goals against average (GAA) and a
save percentage of .932 in the regular season. In the playoffs, he bettered his statistics, posting a 1.03 GAA, a save percentage of .961 and five shutouts in 13 games. Having allowed just 14 goals in 13 playoff games, he led Färjestads BK to the league title, also being named the MVP of the playoffs in the process.
Toronto Maple Leafs On 7 July 2009, Gustavsson ended weeks of speculation by signing a one-year contract for
US $810,000 (plus a $90,000 signing bonus) with the
Toronto Maple Leafs. in 2009 In an interview with the
Toronto Sun, Gustavsson said, "I'm going to try to steal as many games from
Vesa Toskala as I can, I'm a goalie and I want to play... I know the best goalie gets the ice time and if I play good I'm going to get the chance. We will be good teammates and try to push ourselves, but my goal is to be the number one goalie... For the most part, I like [the attention]. It doesn't matter what people say about me, I know if I play good or if I play bad... I like when lots of people are getting involved. In Toronto, everybody talks about hockey. I like to be in the heat." Gustavsson endured a setback on the first day of camp, traced to a heart condition that required an
ablation surgery process. Despite the setback, Gustavsson made his NHL debut to open the
2009–10 season with Toronto on 3 October 2009, against the
Washington Capitals. On 26 October, Gustavsson recorded his first NHL win against the
Anaheim Ducks, making 25 saves on 28 shots in a 6–3 win. After overcoming a groin strain, on 1 December, Gustavsson left after the first period in a game against the
Montreal Canadiens with a
heart murmur, which led to a second Radio Frequency ablation to treat a reentrant
tachycardia. After he was cleared to return, he responded by recording his first NHL
shutout in a 2–0 win over the
Boston Bruins on 19 December. He won seven straight starts in March to tie the Maple Leafs’ club record for the longest winning streak by a rookie goaltender. Gustavsson finished the season with a 16–15–9 record with a 2.87 GAA and a .902 save percentage. On 6 April 2010, the Toronto chapter of the Professional Hockey Writers Association announced Gustavsson as the Maple Leafs nominee for the
2010 Bill Masterton Trophy, awarded for "perseverance, sportsmanship and dedication to hockey." After becoming a
restricted free agent in the summer, Gustavsson agreed a two-year extension with the Leafs on 15 April 2010, with an average salary of $1.35 million per year. In the following
2010–11 season, on 4 February 2011, he was sent down to the
Toronto Marlies, the
American Hockey League (AHL) affiliate farm team of the Maple Leafs, for a two-week conditioning stint. On 9 February, Gustavsson was pulled after the first period in a Marlies home game against the
Connecticut Whale due to an accelerated heart beat. Two days later, on 11 February, Gustavsson underwent a third minor heart ablation surgery and was placed on injured reserve by the Maple Leafs, suspending his conditioning stint. Upon recovering from the surgery, Gustavsson resumed his conditioning stint with the Marlies on 22 February.
Detroit Red Wings On 23 June 2012, with Gustavsson soon to be eligible for free agency, the goaltender's rights were traded by the Maple Leafs to the
Winnipeg Jets for a conditional seventh round pick in the
2013 NHL entry draft. On 1 July 2012, however, after the Jets failed to sign Gustavsson, he signed a two-year, $3 million contract with the
Detroit Red Wings instead. His first victory came in a shootout victory over the
San Jose Sharks on 28 February 2013. He missed time due to injuries, however, ultimately appearing in seven games during the shortened
2013 NHL season. Early in the
2013–14 season, Gustavsson was called upon to replace starter
Jimmy Howard, who injured his left catching hand. On 21 October 2013, Gustavsson was named NHL's
First Star of the Week. Gustavsson posted a 3–0–0 record with a 1.67 goals-against average and .953 save percentage in victories over the
Boston Bruins,
Columbus Blue Jackets and the
Colorado Avalanche, helping the Red Wings move into first place in the
Atlantic Division. On 27 June 2014, the Red Wings signed Gustavsson to a one-year, $1.85 million contract extension. He came off his best season in the NHL, with a 16–5–4 record, 2.63 goals-against average and a .907 save percentage. On 5 November 2014, Gustavsson suffered a dislocated shoulder during the final seconds of an overtime loss to the
New York Rangers. On 31 January 2015, the Red Wings assigned Gustavsson to the Grand Rapids Griffins for a conditioning assignment. During his conditioning stint, Gustavsson started two games for the Griffins, making 29 saves on 31 shots in a 4–0 loss to the
Milwaukee Admirals on 31 January, and stopping 30-of-31 shots during a 3–1 win against the
Toronto Marlies on 4 February.
Boston Bruins On 4 September 2015, Gustavsson was invited to training camp by the
Boston Bruins on a
Professional Try Out. On 4 October 2015, the Bruins signed Gustavsson to a one-year, one-way contract. On 26 January 2016, Gustavsson was hospitalized with an elevated heart rate following the first period of a game against the
Anaheim Ducks. He was released the next day, after he was found to have no heart problems.
Edmonton Oilers On 1 July 2016, having concluded his contract with the Bruins, Gustavsson signed as a free agent to a one-year deal with the Edmonton Oilers to provide backup to starting goaltender
Cam Talbot. On 24 March 2017, while playing for the
Bakersfield Condors, the AHL affiliate of the Oilers, Gustavsson was credited with scoring a short-handed goal against the
San Diego Gulls, as he was the last Condors player to touch the puck before an errant pass by the Gulls caused the puck to go into their own net, as they had pulled their goaltender.
Return to Sweden After closing out the
2016–17 season, with the Condors in the AHL and having not been recalled to the Oilers post-season roster, Gustavsson as a pending free agent agreed to return to the SHL, in signing a three-year deal to be the starting goaltender for
Linköping HC on 4 May 2017. ==International play==