Johan Nilsson competed in his hometown for IK Sparta. Few of his results have been reported. In 1907, he placed ninth at the unofficial World Championships in Frankfurt in the middle of three divisions. At the 1912 Olympics, he competed in Greco-Roman lightweight category (67.5 kg). After winning three of his first four fights, he defeated Alfred Salonen by decision after one hour of wrestling. When it was time for another bout on the same day - against the Hungarian Ödön Radvány – Nilsson was exhausted and lost by fall after 17 minutes. In 1916, he finally claimed his only national title, succeeding in the middleweight (75 kg) division.