Mobilisé durant la Seconde Guerre mondiale au sein de la Royal Air Force, il poursuit sa carrière d'athlète dès 1946 en se classant cinquième du 400 m et deuxième du relais 4 × 400 m des Championnats d'Europe d'Oslo. Désigné capitaine de l'équipe d'athlétisme britannique lors des Jeux olympiques de 1948, William Roberts est éliminé dès les séries de l'épreuve individuelle et se classe quatrième de la finale du 4 × 400 m.