Born in Swindon, Wiltshire, Mills started his youth career at Swindon Town in 1999 before joining Southampton at fourteen and started out for the club’s U15 side. Having progressed through the Southampton Academy and then the reserve, Mills signed his first professional contract with the club in 2002. While at the academy, Mills initially played out as a midfielder, but this all changed when George Prost arrived at Southampton and was impressed with Mills’ display “’’the way I got on the ball and tried to dictate play”’’ that he switched Mills into central–defence role, a position he played today.
To gain first team experience, Mills was loaned out to Coventry City on a one–month loan on 18 September 2004. On the same day, Mills made his Coventry City debut, just hours signing a paperwork for him to play later in the afternoon, in a 0–0 draw against Rotherham United. Mills’ last appearance came 3 October 2004 against Ipswich Town, but scored an own goal, in a 2–1 loss. After this, Mills returned to his parent club with 4 appearance despite Coventry City were keen to extend his loan spell for the second time, only to be turned down by his parent club.
On 21 February 2005, Mills was loaned out again, when he joined Bournemouth on a month loan. Mills made his Bournemouth debut the next day, making his first start and playing 90 minutes, in a 1–1 draw against Torquay United. Mills scored in the next game on 26 February 2005, in a 1–1 draw against Tranmere Rovers, followed up by scoring, in a 3–0 win over Swindon Town. Mills’ performance and form at Bournemouth’s loan spell was extended twice. On the last game of the season, Mills scored his third goal for the club, in a 4–2 loss against Bradford City. With twelve appearance and scoring three times, Mills’ performance and form ended him a nomination for the newcomer-of-the-year award.
Following his loan spell at Bournemouth came to an end, Mills was among many youngers to be in the first team ahead of the 2005–06 season However, in the 2005–06 season, Mills remained out of the first team for most half of the season until Mills finally made his Southampton debut, where he made his first start, in a 3–0 loss against Watford on 26 December 2005 After making three more appearance, Mills’ future at Southampton was in doubt, as his contract was set to expire in the summer and attracted interests from Manchester City.
Mills ultimately signed for Manchester City from Southampton on a three-and-a-half-year deal on 31 January 2006. There Mills linked up again with City reserve manager Steve Wigley, who had worked with the youngster during his spell in charge of Southampton's Academy, an offer he stated he couldn’t turn down. After suffering from ankle injury in the reserve, Mills made his Manchester City debut, where he came on as a substitute for Danny Mills in the 84th minutes, in a 2–0 loss against Chelsea on 25 March 2006, which turns out to be his only appearance in the 2005–06 season.
At the start of the 2006–07 season, Mills suffered ankle injury, but recovered and made his first appearance of the season, in a 4–0 win over Wigan Athletic on 21 October 2006. In order to gain first team football it was announced on 26 January 2007 he joined Colchester United on a one–month loan. Mills made his Colchester United debut on 30 January 2007, where he made his first start, in a 1–0 win over Preston North End. Mills subsequently had his loan spell at Colchester United extended twice before returning in April, in which he made nine appearance.
On 17 August 2007 Mills joined Doncaster Rovers on a six-month loan deal, linking up with manager Sean O'Driscoll for the second time in his career.
Mills made his Doncaster Rovers debut on 25 August 2007, where he came on as a substitute in the 83rd minutes for Gareth Roberts, in a 2–1 loss against Bournemouth. Mills then scored two goals in two matches between 29 September 2007 and 2 October 2007 against Cheltenham Town and Walsall. He had his loan spell cut short on 21 November 2007, but then rejoined Doncaster on loan following a spell out through injury, and stayed at the South Yorkshire club for the rest of the season. He was part of the starting eleven which won promotion to the Championship, beating Leeds United at Wembley Stadium in the League One play-off Final in May 2008.
He expressed a desire to join Doncaster Rovers after winning promotion at Wembley, and was expected to sign in the close season. After two months of speculation about his future, and his move to Doncaster Rovers in doubt after a change of manager at Manchester City, he was eventually unveiled as Doncaster Rovers' record signing when he signed a three-year contract with Doncaster on 30 July 2008. Doncaster Rovers paid £300,000 for his services which smashed the club's transfer record, previously set with the signing of James Hayter for £200,000 in 2007. In his first full season at Doncaster Rovers, Mills made 41 appearance in the 2008–09 season.
In the summer of 2009 Mills attracted the interest of a number of bigger clubs including Birmingham City and Newcastle United. However, on 10 June 2009 Nottingham Forest put in an offer of £2,000,000 for Mills which was rejected by Doncaster Rovers. A subsequent offer from fellow Championship side Reading was accepted, however, and Mills left Doncaster in August 2009.
On 5 August 2009 Mills was officially unveiled as a Reading player, signing a three-year contract under Brendan Rodgers. The exact transfer fee was left undisclosed, however the transfer fee is believed to be somewhere in the region of £2 million.
Mills made his debut for Reading in a 0–0 draw against Swansea City on 18 August 2009. Four days later on 22 August 2009, Mills scored his first Reading goal, in a 3–1 loss against Sheffield United. His second goal later came on 17 October 2009, in a 3–1 loss against West Brom. After Reading's 1–0 win in March 2010 against QPR, Mills was seen making an apparent obscene gesture to his own supporters, for which he apologised. Manager Brian McDermott attributed his gesturing to passion, saying that Mills' actions wouldn't dampen the player's relationship with his supporters and describing Mills' form as "inspirational". Despite struggling with injuries and being sent–off twice, Mills appeared in 30 matches and scored two goals in all competitions for Reading during the 2009–10 season.
Mills started the 2010–11 season in goalscoring fashion, scoring twice in the League Cup 2nd Round 3–3 draw against Northampton Town, before scoring the winner in a 2–1 win away at Leicester City just three days later where he also made a last-ditch goal line clearance, ensuring the Man of the Match award. On 30 October 2010, Mills scored against his former club, Doncaster Rovers, in a 4–3 win. On 1 March 2011 Mills scored the winning goal against Everton in a 1–0 victory to take Reading through to the FA Cup Quarter-finals. After a surging run, Reading qualified for the playoffs. On 30 May 2011, in the Championship play-off Final against Swansea, Mills skippered the Royals and scored a header from a corner kick on 57 minutes and got booked in their 4–2 defeat at Wembley Stadium and he also completed the full 90 minutes. Despite this, Mills went on to make forty–five and scoring eight times in all competitions in the 2010–11 season, due to a suspension and injury.
On 7 July 2011 Mills signed a four-year contract with Leicester City for an undisclosed fee, and was later confirmed as club captain for the 2011–12 season, reuniting with his former Manchester City manager, Sven-Göran Eriksson. Mills had rejected an offer from Premier League club Wolverhampton Wanderers to join Leicester and he was selected by Ian Stringer of BBC Radio Leicester as the club's key player for the 2011–12 season, describing him as a "solid centre half".
He made his league debut in a 1–0 win over Coventry City at the Ricoh Arena on 6 August 2011, On 16 October, Mills was sent off in the 55th minute of a 2–0 defeat at Birmingham City for a two-footed tackle on Morgaro Gomis. and he was sent off again 6 weeks later against Hull City for a professional foul on Aaron McLean. He scored his only goal for the club in a 2–0 win over Southampton at St Mary's Stadium on 24 January 2012.
In February 2012 reports surfaced of an alleged bust up with new manager Nigel Pearson, which Mills denied. He then lost the captaincy and was relegated to training with the club's youth academy. He did not travel for the 1–0 victory against Derby County on 23 February 2012, which prompted questions over his future at the club. Mills was later informed by phone that he was allowed to leave Leicester. But despite being linked with league rivals Leeds United and West Ham United, Mills refused to leave on loan as it would have been "very disrespectful for the fans". Though this move away from the club did not materialise, he never played for Leicester again.
On 4 July 2012 Mills signed a three-year contract with Bolton Wanderers for an undisclosed fee. Upon joining the club, Mills said, "This deal has worked out perfectly for me, mainly because Bolton are a fantastic club. Speaking to the manager, I have got the vibe of what the place and club is about and the ambitions of getting back into the Premier League."
After being given number four shirt for the new 2012–13 season, Mills made his debut for the club in a 2–0 home victory over Derby County on 21 August. He scored his first goal on 15 September, in a 2–1 win against Watford. He picked up an upper thigh injury which ruled him out of play for four to five months.
Upon return from injury, Mills was unable to reclaim his starting position due to the form of Craig Dawson, Tim Ream and Zat Knight who had all occupied the centre-back position in his absence. On 2 April 2013 he made his first appearance for the club since his injury against Huddersfield Town on 8 December 2012 coming on as a 90th-minute substitute for goalscorer Chris Eagles to ensure a 1–0 victory against Huddersfield Town.
In July 2013, after Mills was linked with a move to Leeds United to reunite with his former Reading manager Brian McDermott, Bolton manager Dougie Freedman confirmed that Leeds had made an inquiry about the availability of Mills. Freedman stated that he would like Mills to stay at the club but if Mills wanted to leave he would let him go provided the right offer came in.
Mills made his return to the first team in the second of League Cup against Tranmere Rovers and was one of the two players to convert the penalty successfully, as Bolton Wanderers lost 4–2 in the penalty shoot–out after playing 120 minutes. Since making his return to the first team, Mills won his place back in the side and partnered either David Wheater and Tim Ream. Mills then scored his first Bolton Wanderers goal on 11 January 2014, in a 1–1 draw against Nottingham Forest. However, Mills was once sidelined when he suffered a minor knee problems during a match against Watford on 22 February 2014. After being sidelined for a month, Mills made his first team return, where he assisted Jermaine Beckford to score the only goal in the game, in a 1–0 win over Barnsley on 12 April 2014. Mills later finished the 2013–14 season, making 35 appearance and scoring once in all competitions.
Ahead of the 2014–15 season, Mills was named as vice-captain to Jay Spearing for the 2014/15 season. Mills scored his first Bolton Wanderers’ goal on 23 August 2014, in a 2–1 loss against Brighton & Hove Albion and scored a month later, in a 2–1 loss against Chelsea in the second round of the League Cup. Mills scored the only goal in the game, in a 1–0 win over Birmingham City on 18 October 2014. After Spearing’s injury, Mills played his first match as captain and scored in a 3–0 win over Cardiff City on 4 November 2014. Two months later on 27 January 2015, Mills scored and set up a goal for Liam Trotter, in a 4–2 loss against Rotherham United. Shortly after, Spearing left on loan in January, making Mills the unofficial captain for the remainder of the season. After missing out three matches, due to a knee injury, Mills made his return, only to be short–lived when he was sent–off for a second bookable offence, in a 4–1 loss against Nottingham Forest. Despite this, Mills remained at the club’s captain and finished third with 17 percent behind Josh Vela and Ream. Mills also finished the 2014–15 season, making forty–one appearance and scoring five times in all competitions.
Despite initially being offered a new contract by Manager Neil Lennon, Mills was among players to be released by the club. Mills’ released was explained as part of the club’s cut costing measure.
On 1 July 2015 Mills signed for Nottingham Forest as a free agent, re-uniting with former Bolton manager Dougie Freedman in the process. Upon joining the club, Mills was given a number five shirt ahead of a new season. Mills made his Nottingham Forest debut in the opening game of the season, in a 1–0 loss against Brighton & Hove Albion. Mills then captained his first match as a Nottingham Forest player, following Henri Lansbury’s injury, came on 29 August 2015, in a 2–1 loss against Cardiff City. Since making his debut, Mills started each of Forest's first eight matches of the season, scoring twice, before an injury sustained shortly after equalizing against Middlesbrough on the 19 September forced him to miss Forest's following match away at Huddersfield.
Mills returned to the starting XI in Forest's next game at home to Hull City on 3 October. However, with Forest trailing 1–0 to an Abel Hernández goal, Mills received a straight red card from referee Nigel Miller in the 87th minute of the game following an aerial challenge with Hull's on-loan Arsenal striker Chuba Akpom. Forest lost the game 1–0. On 5 December 2015, Mills scored a headed brace in a 3–0 defeat of Fulham, with a third headed effort in injury time hitting the crossbar. Having played an integral role in an unbeaten December for Forest, Mills was nominated for the SkyBet Championship Player of the Month Award on 7 January 2016. Five days later on 12 January 2016, just after the announcement, Mills scored his fifth goal of the season, in a 1–1 draw against Birmingham City. However following Lansbury’s injury, Mills remained as the club’s captain for three months until his return. Mills finished the season having made forty-two appearances and scoring five times in the league.
Mills made his first appearance of the 2016–17 season in Forest's opening match, starting a 4–3 defeat of Burton Albion under the new management of Philippe Montanier. After the departure of Montanier and the sale of regular captain Henri Lansbury, Mills was installed as captain by caretaker manager Gary Brazil. Mills, however, only lasted fifty-five minutes of Brazil's first game in caretaker charge, being substituted with a groin injury that was later reported to sideline the player for two months.
After represented England at England under-18, Mills was called–up by England under-19 level and helped the England under-19 side qualify for the European Under-19 Championship in March 2005. Mills appeared in the European Under-19 Championship tournament and helped the national side to the final, which they lost to France under-19.
Mills was also called up for England under-21's side, but did not play.As of match played 7 May 2017
Born in Swindon, England, Mills and his family lived just 10 minutes from the County Ground until he left when he was 14. Mills went to school at Bradon Forest Secondary School in Purton, Wiltshire.
His youngest brother, Joseph, was a trainee at Southampton, and made his first team debut in 2008. He now plays for Oldham, on loan from Burnley. His other brothers, Jon-Paul and Jamie both play for Hellenic Football League side Witney United.
The former Hollyoaks and Prisoners' Wives actress Emma Rigby was formerly Mills' girlfriend. In 2014, he married Jade Elliott, daughter of former Leicester City and Scotland defender Matt Elliott and together they had a baby daughter, Leah.
The football pundit and former Leicester City player Steve Claridge described Mills' style of play as that of "an old-fashioned centre-half who relishes the physical side of the game".Doncaster Rovers
Football League One play-offs: 2007–08