Williams was born in Smethwick and, after leaving Oldbury Road School, played for various local clubs, including West Bromwich Hawthorns, West Smethwick, Hawthorn Villa and Old Hill Wanderers. It was while he was playing for the latter club that he was spotted by West Bromwich Albion, and he was signed as a replacement for Mark Nicholson who had left to join Luton Town. Williams joined Albion in May 1894, signing for a £20 transfer fee. His potential was seen immediately and he went straight into the first team. Although Albion had a difficult league season, narrowly avoiding the end of season "Test match" play-offs by a win on the final day of the season, they had more success in the FA Cup. In the semi-final against Sunderland, Williams scored from the penalty spot following a foul on Billy Bassett, thus helping Albion secure their fifth FA Cup Final appearance. In the final itself, played at Crystal Palace against local rivals Aston Villa, Villa took a first-minute lead when Bob Chatt's shot was half saved by goalkeeperJoe Reader and John Devey bundled the ball over the line. This was the fastest goal in FA Cup history, scored after just 30 seconds. In the following season, Williams was ever-present in a defence that conceded 59 goals as Albion struggled throughout the year. They finished the season at the foot of the table and had to enter the end of season test matches involving the two teams finishing at the foot of the First Division and the two who finished at the top of the Second Division. Williams scored in a 6–1 victory over Manchester City and in a 2–0 victory over Liverpool, and as a result Albion retained their First Division status with Liverpool replacing Small Heath. The 1896–97 season was yet again disappointing for Albion as they finished the season in twelfth place. For Williams however, it heralded the start of his England career, when he was called up to play at left-back in the British Home Championship match at Trent Bridge, Nottingham against Ireland. England "totally dominated the game" winning 6–0, with a hat-trick from Fred Wheldon and a pair from Steve Bloomer. The 1897–98 league season was more successful for Albion and at the end of March they still had faint hopes of a high finish, but four defeats in April resulted in a seventh-place finish. Williams was called back into the England team for the 1898 British Home Championship against Ireland played at the Solitude Ground, Belfast on 5 March 1898. In a close match, England defeated the Irish by three goals to two. Williams retained his place for the match against Wales on 28 March, when he was joined by his West Bromwich Albion colleague Tom Perry who was making his single international appearance at right-half. England won the match comfortably 3–0, with two goals from Fred Wheldon. The final match of the international season was against Scotland and was to decide the 1898 British Home Championship with both teams level on points. In the match, played at Celtic Park, Glasgow on 2 April, Scotland were defeated by a fast and powerful England side, who emerged victorious by three goals to one, with Steve Bloomer scoring twice. Despite playing all three matches away, England claimed the British Home Championship after a two-year gap. Williams was again selected for the 1899 British Home Championship matches against Ireland and Wales. The first match, against Ireland, was played at Roker Park, Sunderland's newly opened ground, and ended in a 13–2 victory for England, with four goals from Gilbert Smith and three from Jimmy Settle. This match is still both the record number of goals scored by England in a single match and the highest aggregate goals in a game involving England. England defeated the Welsh in the next match 4–0 with a pair of goals from Steve Bloomer Williams was expected to play in the deciding match against Scotland a few weeks later, but a niggling cartilage injury ruled him out and he was unable to reclaim his place the following season. In his England career, he played six matches all of which ended in victories, with only five goals conceded. He continued to play on for West Bromwich Albion until the 1900–01 season but the cartilage injury forced him to retire in June 1901. In his West Bromwich Albion career he played 180 league games, plus two in the test matches and 22 in the FA Cup, a total of 204 matches with 12 goals.
After football
After retiring from playing, Williams became a trainer and later a scout for West Bromwich Albion. He subsequently became a licensee in West Bromwich for many years. He died in West Bromwich on 22 January 1929, two days after his 53rd birthday.