Williams began his professional baseball career in at the age of 23, playing for the Regina Red Sox of the Western Canada League. In , he played for the Edmonton Eskimos before moving to the Spokane Indians in . After posting a .340 batting average in 79 games for the Indians, he made his major league debut with the Cincinnati Reds on July 14, 1915. He hit for a .242 average in 71 games for the Reds during the peak of the dead-ball era when only 6 players in the league hit above the .300 mark. He played in only 10 games for the Reds in 1916, spending most of the season with Spokane and with the Portland Beavers of the Pacific Coast League. Williams hit 24 home runs along with a .313 batting average for Portland in before being purchased by the St. Louis Browns.