Hamrin first played for AIK in Sweden, whom he joined in the 1952–53 season. He then joined Italian side Juventus in 1956 and played 23 games during his single season there, notching eight goals. After that one season, he joined Padova on loan, where he scored 20 goals in 30 games. He would only stay there for one season again, however, as he was sold to Fiorentina in 1958, where he stayed until 1967, playing 289 Serie A games and scoring 150 goals. While at Fiorentina, he won the Coppa Italia in 1961 and 1966, as well as the 1960–61 European Cup Winners' Cup (finishing the competition as the top–scorer with six goals, including one in the second leg of the final, a 2–1 home victory over Rangers), and the 1966 Mitropa Cup. Hamrin is commonly regarded as one of Fiorentina's greatest ever players, and is the team's all–time highest goalscorer, with 208 goals. He joined A.C. Milan in 1967 and played there for two seasons, winning the league title in 1968; he also scored both goals for Milan as they overcame Hamburg 2–0 in the 1968 European Cup Winners' Cup Final. The following season, the team won the European Cup. His final Italian club was Napoli, whom he joined from Milan in 1969. In 1971, he return to Sweden, playing one season for IFK Stockholm before retiring in 1972.