Neilson, who played as a right-back, started his senior career with Heart of Midlothian, 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.