Ferguson started his career with Clyde, but was transferred to St Mirren for £60,000 in 1986. Aged 20, he scored the winning goal in the 1987 Scottish Cup Final, as St Mirren won 1–0 against Dundee United.
Rangers
Nine months after winning the Scottish Cup, he transferred to Rangers for £850,000 - still the record fee received by St Mirren. He is remembered as a key player of the era at Rangers, appearing 336 times and scoring 42 goals. Along with Ally McCoist and Richard Gough, he played a part in every season of the club's historic run of nine titles in a row between 1988–89 and 1996–97 under managers Graeme Souness and Walter Smith. Having picked up his first winner's medala decade earlier, scoring in the 1988 Scottish League Cup Final, he also featured in the first title win with manager Dick Advocaat in 1998–99, and appeared as a substitute in the League Cup and Scottish Cup finals that season. His playing time became limited under Advocaat, and he moved on to Dunfermline Athletic in 2000. He was given a testimonial match by Rangers, which was played against Sunderland on 21 July 1999.
Dunfermline Athletic
Ferguson spent two seasons in Fife, during which he helped newly-promoted Dunfermline to keep their place in the top division and then improve it. He then moved to Australia to see out the final years as a player and begin his managerial career.
International career
Ferguson won nine international caps for Scotland, achieved at irregular intervals over a period of nine years. His last appearance was in a goalless draw against Estonia in February 1997. After the game, Ferguson was overheard by a microphone apparently swearing at the Scotland supporters. Ferguson apologised to the Scotland manager, Craig Brown, and he was included in the next squad.
Managerial career
North Queensland Fury FC
On 15 September 2008, Ferguson was confirmed as the new manager of North Queensland FC leaving his post as assistant manager at Central Coast Mariners. He took up the post straight away in order to give the team the best preparation possible for their inaugural season in Australia's Hyundai A League. Ferguson lasted only one year with the Fury, when the club folded due to financial instability.
Perth Glory FC
In 2010 Ferguson moved to become the assistant to David Mitchell at the Perth Glory at the end of the 2009–10 season and becoming the coach on 12 October 2010 after David Mitchell resigned. On 27 March 2012 he signed a two-year contract extension with the club. Ferguson successfully guided Perth Glory to their first A-League Grand Final in April 2012, after beating Minor A-League Premiers Central Coast Mariners in a penalty shootout at the Mariners' home ground in Gosford. However they lost the subsequent Grand Final 2–1 following a late comeback from Brisbane Roar who were awarded a controversial injury-time penalty. Ferguson's contract was mutually terminated on 11 February 2013 as Perth Glory manager, after five straight losses and six hours of game time without a goal scored.
In 2013, Ferguson was announced as the Director of Football and Coaching at the Townsville NPL Queensland franchise Northern Fury FC. On 16 February 2017, Ferguson resigned as Northern Fury manager, less than a fortnight from the beginning of the Fury's season. He was replaced by Paul Roncato.