Scunthorpe United Butler started his career at
Scunthorpe United. He made his debut for
the Iron, then in the
Third Division, on 20 September 2003 as a 34th-minute substitute in a 1–1 draw with
Leyton Orient at
Brisbane Road. His full debut came three days later, a 2–3 defeat to
Burnley at
Glanford Park in the third round of the
2003–04 League Cup. Midway through the season Butler signed a four-year contract. On 7 February 2004 he scored his first goal in a 2–2 home draw with
Doncaster Rovers. He made a total of 42 appearances, scoring two goals in the
2003–04 season. The
following season he scored ten goals in 37 league games as Scunthorpe finished second in
League Two and were promoted to
League One. His goal tally that season included scoring twice in a 3–2 home win over
Lincoln City on 21 August 2004 and two goals in a 3–1 victory over
Rushden & Diamonds at
Nene Park on 18 December. He suffered a serious injury in early 2005 before returning to action later in the season. At the end of the season he won four different honours at the club's annual awards. Butler left Scunthorpe in June 2008, turning down a new three-year contract offer, Along with five other players, he made his Huddersfield debut in a 1–1 draw with
Stockport County at the
Galpharm Stadium on 9 August 2008. His first goal came in a 3–2 home win over
Crewe Alexandra on 1 November 2008. He made a total of 45 appearances in the
2008–09 season, scoring four goals. Butler began the
2009–10 season as a first team regular. However, Terriers manager
Lee Clark started using
Peter Clarke and
Nathan Clarke as the club's regular centre back pairing. On 7 January 2010, after not making an appearance for two months, Butler joined Championship side
Blackpool on loan until the end of
the season. On the move up a division Butler said, ''"I'm really happy with the move. It's a weird one because I've gone a step up, but it's something I'm hoping to thrive on. It looks a good club and I'm happy to be here. Hopefully I can play as many games as I can and help this club where it wants to go, which is the
Premiership I suppose."'' He made his debut two days later in a 1–1 draw with
Cardiff City at the
Cardiff City Stadium. After helping Blackpool reach the
Premier League, Butler returned to the Galpharm, but had the remainder of his contract paid up on 23 June 2010. In October 2010 Butler joined
Rochdale on a trial basis but failed to agree a contract.
Walsall On 12 November 2010, Butler joined
Football League One side
Walsall on a contract until the end of the season. Butler was signed by
Chris Hutchings, who was sacked on 4 January 2011—the day after a 4–1 defeat to Peterborough United—following a run of poor League form since the beginning of the season, which had seen Walsall sink to the bottom of League One. He was appointed captain after
Dean Smith, the club's Head of Youth, took charge of the first team, and scored his first goal for Walsall in a 3–3 draw against fellow strugglers Tranmere Rovers on 8 January 2011. An impressive second half of the season earned Butler Walsall's Player of the Season and Players' Player of the Season awards. On 13 May 2011, Butler signed a new two-year contract, keeping him at the club until June 2013. In early May 2014, Butler was offered a new contract with Walsall, however, he rejected new terms with Walsall on 22 May; he made 176 appearances in total for the West Midlands club.
Sheffield United On 5 June 2014, Butler signed a two-year deal with
Sheffield United on a free transfer after rejecting the offer of a new deal with Walsall. On 13 August 2014, Butler scored on his début against
Mansfield Town in the
League Cup. On 11 September 2014, Butler was loaned to former club
Walsall on a one-month loan deal after finding first team football hard to come by at United. Butler returned to Sheffield United on 20 October 2014.
Doncaster Rovers On 23 October 2014, Butler went out on loan to home-town club
Doncaster Rovers until January 2015. On 6 January 2015, Butler signed permanently for Doncaster Rovers for an undisclosed fee on a two-and-a-half-year deal, having made 13 appearances during his loan spell. He went on to play in 222 games and scoring 17 goals for the club. Manager
Darren Ferguson made Butler the
Club Captain at the beginning of the 2016–17 season, a position he retained until leaving Doncaster. Butler was one of the four nominees for
EFL League One Player of the Month in both January 2015 and December 2017, "Led the defence by example with a superb goal-line clearance against Oldham and then headed Rovers in front in the same game – one of two goals he scored in December". He was named as PFA Player in the Community for the 2016–17 season in recognition of his community work in and around his hometown of Doncaster. In 2017, Butler became a member of the
management committee of the PFA. He was offered a new contract, a one-year deal including coaching, by Doncaster at the end of the 2018–19 season however this was on greatly reduced terms by then manager Grant McCann.
Later career He decided to make a return to Scunthorpe United. On 11 September 2020 he was signed by Rovers on a contract until January 2021. On 1 March 2021, Butler was placed in charge of Doncaster following the departure of
Darren Moore until the end of the season. Butler returned to the Belles dugout after his short managerial tenure with Doncaster Rovers concluded. In July 2021, Butler dropped into non-league for the first time when he signed a contract for
National League North side
Boston United before leaving the club after just two months. ==Coaching career==