Jóhann began his senior career at Breiðablik for a single season before moving to Dutch team AZ in the Eredivisie, where they also participated in the Europa League.
After failing to adapt to life in London, he decided to move back to Iceland in 2008, joining his boyhood club Breiðablik as he admitted missing playing football and attending school with his friends.
[4] After returning to Breiðablik, Jóhann made his senior debut in the opening match of the season, where he played 72 minutes, in a 1–1 draw against Íþróttabandalag Akraness.
[5] He established himself as first team regular in the 2008 Úrvalsdeild, where he played often as left wing and striker,[6] and scored his first Breiðablik goal on 7 July 2008, in a 2–0 win over Fylkir.
[6] After an earlier bid from Hamburger SV fell through, Jóhann transferred to Dutch club AZ on 28 January 2009, signing a 5-year contract.
[10] Jóhann then made his league debut for the club, playing in the opening match of the season, in a 1–1 draw against NAC Breda.
In the 2012–13 season, Jóhann remained in the starting line–up until he received a straight red card in the 82nd minute, in a 0–0 draw against Heerenveen on 26 August 2012 and had to serve a two match suspension as a result.
[38] On 11 July 2014, Guðmundsson returned to London, this time moving to the Greenwich district, signing for Championship side Charlton Athletic on a two-year deal after leaving AZ.
[40] Jóhann made his Charlton Athletic debut in the opening match of the season, as they drew 1–1 away to newly promoted Brentford.
[49][50] Jóhann was voted runner-up in the club's player of the season competition after an impressive first campaign, which saw him net a total of 11 goals in 37 matches.
[55] After making his return to the first team, Jóhann went on to score four more goals for the club that season, against Preston North End,[56] Birmingham City,[57] Brighton & Hove Albion[58] and Leeds United.
[60] On 19 July 2016, Jóhann joined newly promoted Premier League side Burnley on a three-year deal for an undisclosed fee, alongside goalkeeper Nick Pope.
[61] He made his Burnley debut in their opening match of the season, coming on as a substitute for Scott Arfield in the 75th minute in a 1–0 loss to Swansea City.
However, on 6 July, following Scott Parker's appointment as new Burnley manager, Jóhann signed a new one-year deal to remain with the club going into the 2024–25 season.