Williams began his AFL career with Collingwood, joining them from Tasmanian club North Hobart. Playing in a number of positions ranging from half back to half forward, the tough-tackling Williams was a regular in the mostly unsuccessful Collingwood side of the late 1990s, racking up 189 games and kicking 223 goals. However, at the end of the 2000 season, he was traded to Sydney for two draft picks. There, he immediately made an impact, winning two consecutive Bob Skilton Medals in 2001 and 2002, as well as being selected in the All-Australian team of 2003. In 2005, Williams played in the Swans' premiership side. In doing so, he established an AFL record for most matches played by a player before being in a premiership side, with the Grand Final having been his 294th game. Shane Crawford surpassed this record in 2008. On 13 May 2006 against Richmond at Etihad Stadium, Williams became the 45th player to play 300 VFL/AFL games. The Swans won this match by 118 points, setting a record for the biggest winning margin in a match featuring a player playing his 300th VFL/AFL game.
Retirement
On 21 June 2006, Williams announced he would be retiring at the end of the 2006 premiership season, which was his 16th at AFL level. Reasons cited for his retirement were the fact that his family was based in Melbourne, and that more opportunities for selection to younger players such as Tim Schmidt and Paul Bevan was important for the club. On 11 July 2006, coach Paul Roos reported at a press conference that Williams was a chance to be rested for the forthcoming game against West Coast. Hours later, Williams announced his retirement, effective immediately due to surgery required on a broken collarbone, not seeing out his initial promise to retire at the end of the season.
Coaching career
In 2007, Williams took up an assistant coaching role at the Melbourne Football Club, serving there for two years. In 2009, he moved into an assistant coaching role at the Western Bulldogs, and served there for three years. While at the Bulldogs, Williams served three matches as caretaker senior coach after Rodney Eade left the club before the end of the 2011 season. Williams' first match as caretaker Bulldogs coach resulted in a 60-point win over bottom-of-the-ladder. Williams shifted to a midfield assistant coaching role at the Carlton Football Club in 2012 on a two-year contract, but was sacked after one unsuccessful season.