Histon Born in
Peterborough, Mills played youth football with
Boston United, He went on to feature 40 times in the
2010–11 season, which ended in
relegation out of the
Conference Premier for Histon. He scored his first career goal on 29 August 2011, in a 2–0 win at
Solihull Moors. The "Stutes" went on to finish the
2011–12 season in 16th-place in the
Conference North, with Mills playing 31 games. He made 39 appearances in the
2012–13 campaign as Histon finished above the relegation after finishing above 20th-placed
Corby Town due to a superior
goal difference of just one goal. He scored three goals in 14 matches in the
2013–14 season, which ended in relegation for the club after his departure.
Boston United He signed with
Boston United in March 2014; the move was familiar to the player as manager
Dennis Greene had previously been in charge in Histon, whilst Mills had previously spent time at Boston's Centre of Excellence. He scored one goal in six games towards the end of the 2013–14 season, which saw Boston miss out on the Conference North play-offs by six points. He established himself in the first team during the
2014–15 campaign, featuring in 44 games as the "Pilgrims" posted a third-place finish. Boston were eliminated from the play-off semi-finals by
Chorley, losing a
penalty shoot-out at
York Street following a 2–2 draw; Mills converted his
penalty, whilst
Rene Steer missed the crucial spot-kick as the shoot-out went to sudden death. Boston again qualified for the play-offs at the end of the
2015–16 season, and Mills scored the second goal of a 2–0 home win over
North Ferriby United in the first leg of the play-off semi-finals, though North Ferriby won the return fixture 3–0 to eliminate Boston from the play-offs.
Grimsby Town On 15 June 2016, Mills stepped up two divisions into the
English Football League to join
League Two club
Grimsby Town on a two-year deal. He faced a difficult task in dislodging the experienced
Ben Davies at right-back. He made his debut for the "Mariners" in the
EFL Trophy on 30 August, after suffering a
hamstring injury in pre-season. He played 34 games in the
2016–17 season, which Grimsby ended in 14th-place after going through three managers in
Paul Hurst,
Marcus Bignot and
Russell Slade. He was linked to a move to
Shrewsbury Town in May 2017, managed by Paul Hurst, who signed him at Grimsby. He was
sent off for the first time in his career on the opening day of the
2017–18 season, in a 3–1 defeat at
Chesterfield on 5 August, having received a second
yellow card in the game following a clash with
Kristian Dennis. The next month he was sidelined for five league games after picking up a hamstring injury. During that time, Davies performed well in his absence. He next started a league game in November, after Davies moved to left-back to cover for the suspended
Paul Dixon. He was released by Grimsby after playing 32 games in the
2017–18 season. The
Grimsby Telegraph reported that his name was one of the biggest surprises on
Michael Jolley's 11 strong released list, as Davies was also let go to leave
Reece Hall-Johnson as the only right-back remaining at
Blundell Park.
Morecambe On 21 June 2018, Mills signed a one-year contract with
Morecambe. Manager
Jim Bentley said that "we see him as a player who can get even better". He scored his first goal in the EFL on 6 April, securing an important point in a 1–1 draw with relegation rivals
Macclesfield Town. At the end of the
2018–19 season, Mills won three awards at the end of the season awards at the
Globe Arena, including Player of the Year.
Oldham Athletic On 21 June 2019, after turning down a new
contract at Morecambe, Mills signed a one-year contract with
Oldham Athletic. On 21 September, he provided two assists in a 3–1 win over former club Morecambe at
Boundary Park, in what was
Dino Maamria's first game in charge following the sacking of
Laurent Banide. The "Latics" finished the
2019–20 season in 19th-place and Mills was released in July 2020.
Port Vale On 16 July 2020, he signed a one-year contract with
Port Vale. Assistant manager
Dave Kevan said that he was brought in to provide competition for
James Gibbons. Manager
John Askey had reportedly tried to sign him the previous year, but lost out to Oldham. However, he was ruled out of action for four weeks after picking up a grade two
tear in his
hamstring in a 0–0 draw with
Harrogate Town on 26 September; the game had seen Mills help the "Valiants" to keep their third consecutive
clean sheet in the league. He then had to isolate after testing positive for
COVID-19, leaving him unable to play again until the start of December. On 31 March, he was deregistered from the squad to make space for
Harry McKirdy, after Mills picked up an injury which would keep him out of action for the rest of the
2020–21 season. On 10 May 2021 it was announced that he would leave Port Vale when his contract expired at the end of the season.
Walsall He signed a one-year contract with
Walsall on 8 July 2021, after which manager
Matthew Taylor praised his character and versatility. Mills featured 14 times for the club, including just twice after
Michael Flynn took charge in February.
Return to Boston United On 5 August 2022, Mills returned to
Boston United in the National League North, with manager
Paul Cox saying "it was a no-brainer to bring him in". He made 26 league appearances in the
2022–23 campaign, scoring two goals. He signed a new contract in June 2024. He scored six goals in 44 appearances across the
2024–25 campaign, Speaking in October 2025, manager
Graham Coughlan said that Mills was a key influence on the team, praising "the importance of him as a person, as a leader, a character and as a player". He played 15 games in the
2025–26 campaign, ==Style of play==