Mills had joined Derby County as a 14 year old and graduated to make his first team debut under John Gregory’s management in 2002.
Primarily a defender, his versatility over the years has seen him play both midfield and striker too.
He stayed at Derby until the summer of 2006, having played 64 games in the Derby colours, as well as loans at Milton Keynes and Walsall, scoring his first league goal during the MK stay.
League Two Rotherham was his next stop, spending four years with them. For a while he was team captain, making 138 appearances and scoring three goals. He had another loan spell during that time, playing 14 games for Crawley Town in 2007.
He played for Rotherham in the 2010 League Two play-off final, but was then released and joined Crawley on a full time basis.
Two years at Crawley saw him make 53 appearances and score five goals, before moving to Macclesfield Town for a season.
The following year he returned to Rotherham, for a short stay before joining Bury for the 2014/15 season. After 39 games for the Shakers, plus a loan at Cheltenham, he made a couple of appearances for Conference North side Brackley Town, before beginning his long association at Mickleover from 2016.