His career stalled at St Andrew's, playing just four games for Birmingham, and, after two loan periods at Queens Park Rangers, scoring once against Huddersfield Town, he rejoined Peterborough United, initially on loan, later joining permanently. In May 2004 Williams went to Barnsley on a free transfer.