Nilsson played his youth days with Limhamns IF, before he moved in 1934 to Allsvenskan club Malmö FF, where he played until 1953. There he won five league titles and five Swedish Cups. During his playing days he rejected an offer from A.C. Milan.
Nilsson played 57 times for the Sweden national football team, and participated in several international tournaments. He played in the 1938 FIFA World Cup, where Sweden finished fourth. He played in the 1948 London Olympics, where Sweden celebrated its best international result with a gold medal, defeating Yugoslavia 3:1 in the final. Two years later he played in the 1950 FIFA World Cup where Sweden finished third, thus becoming one of only two players to play in World Cups before and after World War II (the other being Switzerland's Alfred Bickel). In the 1950 World Cup, Nilsson was also elected into the All-Star team of the tournament. He won another medal in the 1952 Helsinki Olympics, where Sweden won the bronze after defeating West Germany 2:0.
In 1950, Nilsson was awarded the Guldbollen as the year's best Swedish football player. In 2003, he was inducted into the SFS Hall Of Fame.