Berglund started his professional career with IF Elfsborg and was a key player together with Anders Svensson and Tobias Linderoth, the three of them were nicknamed "The Headband Gang". In the 2000 season he was top goalscorer of the Swedish League and he attracted interest from foreign based clubs and eventually signed for Dutch side Roda JC in a 750.000 EUR deal.
Roda JC
Berglund had a hard time in the Netherlands and after a year and a half, he was sent on loan back to Sweden and IF Elfsborg. He returned to the Netherlands for the remaining of the 2003–04 season and played a few games.
Denmark
In the spring of 2004 he moved to Danish side Esbjerg fB who paid a recordtransfer fee of 150.000 EUR for the fast forward. Berglund made his debut for Esbjerg on March 14, 2004 in a game against Brøndby IF away. Berglund scored two goals and had three assist in the 6–1 crushing of the Danish giants. Berglund played two and a half years in Esbjerg before he was transferred to Danish champions F.C. Copenhagenin the summer of 2006. He played only one season with the club, playing 52 games and scoring 18 goals. He once again played alongside former teammate Tobias Linderoth. On November 26, 2006 he beat Erik Bo Andersen's record of quickest person to score 50 goals in the Danish Superliga. Andersen had used 97 matches to score the 50 goals, but Berglund could, with a goal against Randers FC, score his goal no. 50 after 93 matches. In the spring of 2007 the club brought in Brazilian striker Ailton Almeida whose arrival pushed Berglund out of the starting line-up and when F.C. Copenhagen in the summer of 2007 signed Danish international forward Morten Nordstrand, Berglund was suddenly fourth or fifth choice for one of the two slots in the Copenhagen attack. So only a few days after Nordstrand's arrival, Berglund moved back to Sweden and signed once again with IF Elfsborg. The transfer was reported to be 4,9 million DKK, 750.000 EUR.
Elfsborg
Berglund played his first game for Elfsborg July 12, 2007 when he came on as a substitute in a 2–0 victory at home against AIK.
On January 10, 2011, Berglund officially announced his retirement from football as a player. After being sidelined a long time with constant injuries, Berglund felt he no longer had the motivation to continue playing.