Neilson, who played as a defender, started his senior career with Hearts, making 200 Scottish Premier League (SPL) appearances and winning the Scottish Cup in 2006 with the club. Earlier on in his career, Neilson was loaned to Scottish Football League (SFL) clubs Cowdenbeath and Queen of the South. After failing to agree a new contract with Hearts, Neilson left and signed for English Championship club Leicester City in 2009. After about a year he was dropped from the Leicester first team, and was loaned to Brentford, and was then given a free transfer in the summer of 2011. Neilson played for Dundee United during the 2011–12 season, and later played for Falkirk and East Fife.
He became Hearts' head coach in 2014, winning the Scottish Championship title in his first season. Neilson moved to Milton Keynes Dons during the 2016–17 season.
Born in Paisley, Renfrewshire, Neilson was originally attached to Rangers, the team he supported, through their Boys Club system. He joined Heart of Midlothian's Youth Academy aged 16.
He had time on loan at Cowdenbeath in 1999. In August 2002 Neilson joined Dumfries club Queen of the South on loan. Neilson helped the club consolidate their Scottish First Division status and win the 2002 Scottish Challenge Cup Final, beating Brechin City 2–0. Neilson made 17 appearances for Queens including a man of the match performance at Clyde. He returned to Tynecastle in January 2003.
A high point in his career came in 2004 with his match-winning goal in Hearts' 2–1 away win over FC Basel in the 2004–05 UEFA Cup, his first in any competition for the club. He scored his first league goal for Hearts in a 3–1 win over Livingston later that season.
On 4 February 2009 he was given the role of Hearts' captain after the departure of Christophe Berra. Manager Csaba Laszlo did not start contract talks with Neilson until the season drew to a close. As a result of the new wage structure at Hearts, Neilson and the club could not reach an agreement for a new contract.
In search of a new challenge, Neilson agreed terms with English Championship club Leicester City on 21 May 2009. The next day the club confirmed that he had signed a pre-contractual agreement and would join them in July. Signing a three-year contract, Neilson set his sights on helping the club win promotion to the Premier League. He made his debut in a 0–0 draw against Ipswich Town at Portman Road on 15 August, becoming the 1000th player to debut for the club in a competitive match. Neilson finished the season with 19 league games for Leicester. He scored his first goal for the club in a 4–3 League Cup win over Macclesfield Town on 10 August 2010.
On 17 February 2011, Neilson joined Brentford on loan for a month, which was extended until the end of the season on 23 March 2011. On 3 April 2011 Neilson started in the 2011 Football League Trophy Final playing the full 90 minutes. Carlisle United won the match 1–0 On 27 May 2011, manager Sven-Göran Eriksson allowed Neilson along with Michael Lamey to speak to other clubs in search of more regular first team opportunities.
After training briefly with Falkirk and Burton Albion, Neilson agreed to sign a contract with Dundee United on 15 November 2011 until the end of the 2011–12 season. His debut for the Tannadice Park club was against his former club Hearts on 19 November 2011. Neilson soon became a regular in the first team and manager Peter Houston said he was keen to keep Neilson at the club. At the end of the season, Neilson was offered a new contract but he turned the offer down and was released by the club.
After his release, Neilson was linked with Scottish First Division side Falkirk. Neilson played as a trialist for Falkirk in a league match against Dunfermline Athletic on 6 October 2012 that ended in a 2–2 draw. Neilson unfortunately suffered a cheekbone injury during the match. Neilson recovered from this injury to sign for the club and play in a further two league matches. These were both 2–1 defeats, at Raith Rovers on 10 November 2012 and at Livingston on 17 November 2012.
After recovering from a knee operation, and having done some coaching work, he signed a short-term deal with Falkirk until the Summer of 2013.
In September 2013, Neilson joined East Fife as player/coach. He made his debut playing as a trialist on 31 August 2013, against Rangers in a 5–0 defeat.
On 31 August 2013, Neilson returned to Hearts being appointed as U20s Development Manager.
New club owner Ann Budge promoted Neilson to the head coach position, working for director of football Craig Levein, in May 2014. Neilson's first official match in charge was a 3–1 home defeat of Annan Athletic in the Scottish Challenge Cup on 26 July 2014. His Hearts team began their league campaign against Rangers away from home. An injury time goal from Osman Sow wrapped up the points in a 2–1 win. Neilson followed this up by beating rivals Hibernian. Neilson was awarded Championship manager of the month for August 2014 after five straight wins. Having gone through the first 13 league games unbeaten, dropping only four points, Hearts moved 9 points clear of nearest rivals Rangers with a 2–0 victory at Tynecastle on 22 November 2014. His team remained undefeated for their first 20 leagues matches until a 3–2 home defeat to Falkirk ended their run on 24 January 2015. Neilson collected manager of the month twice more for October and November during Hearts' unbeaten league run. Neilson's team handed Cowdenbeath a joint club record 10–0 defeat on 28 February 2015.
Neilson, who won his fourth manager of the month award for March, won his first silverware as a head coach on 22 March 2015 as Hearts won the Scottish Championship after Rangers beat Hibernian 2–0, and were promoted to the Scottish Premiership after only one season away. Having clinched the title with seven games remaining, his team won the title in impressive style winning 29 of 36 games, scoring 96 goals, conceding just 26 goals with a points total of 91. They finished the season 21 points ahead of nearest challengers, city-rivals Hibernian, and 24 points ahead of third-placed Rangers. Neilson was shortlisted for PFA Scotland Manager of the Year, but lost out to John Hughes of Inverness CT.
Hearts finished third in the 2015–16 Scottish Premiership, qualifying for the 2016–17 UEFA Europa League.
In November 2016, it was reported that Neilson had agreed to move to English League One club Milton Keynes Dons, subject to a compensation agreement between the clubs.
On 2 December 2016, Milton Keynes Dons confirmed that Neilson had been appointed as manager, as well as his assistant-manager at Hearts, Stevie Crawford. The club confirmed Neilson would take charge following the club's FA Cup game against Charlton.
In his first league game in charge of Milton Keynes Dons he recorded a 1-0 home win against rivals AFC Wimbledon.
Neilson was capped 10 times by Scotland under-21. He won his first and only full Scotland cap in a 2–0 Euro 2008 qualifying defeat to Ukraine in Kiev on 11 October 2006.As of match played 16 September 2017
Heart of MidlothianScottish Cup: 2005–06
Queen of the SouthScottish Challenge Cup: 2002–03
Heart of MidlothianScottish Championship: 2014–15
IndividualScottish Premiership Manager of the Month: November 2016