Vainqueur des Championnats d'Europe de 1946 d'Oslo devant le Suisse Fritz Schwab, il remporte le titre du 10 km marche lors des Jeux olympiques d'été de 1948 à Londres, avec un nouveau record olympique dans les séries. Il signe le deuxième succès suédois dans les épreuves de marche après la médaille d'or de son compatriote John Ljunggren sur 50 km. Il se classe troisième des Championnats d'Europe de 1950, puis conserve deux ans plus tard son titre olympique du 10 km lors des Jeux d'Helsinki où il établit un nouveau record olympique en 45 min 02 s 8.