Nilsson spielte in seiner Jugend bei Limhamns IF, ehe er 1934 zu Malmö FF in die Allsvenskan wechselte. Hier spielte er bis 1953. In dieser Zeit wurde er jeweils fünf Mal schwedischer Meister und Pokalsieger. Ein Angebot des AC Mailand schlug er aus.
Nilsson stand zudem 57 Mal im Trikot der schwedischen Nationalmannschaft auf dem Platz. Der Abwehrspieler nahm für die Blågult an mehreren Turnieren teil. Bei der Weltmeisterschaft 1938 wurde er mit der Auswahl Vierter. Bei den Olympischen Spielen 1948 konnte er den größten internationalen Triumph feiern, als im Finalspiel mit einem 3:1-Erfolg gegen Jugoslawien der Olympiasieg gelang. Zwei Jahre später erreichte er mit der Nationalmannschaft den dritten Platz bei der Weltmeisterschaft 1950. Bei den Olympischen Spielen 1952 in Helsinki wurde erneut die Bronzemedaille gewonnen, als die deutsche Auswahl im Spiel um Platz drei mit 2:0 besiegt wurde.
1950 wurde er mit dem Guldbollen als bester schwedischer Fußballer des Jahres ausgezeichnet, 2003 in die SFS Hall Of Fame aufgenommen.