Wilson was born in Scunthorpe and began his career as a trainee with Manchester United, turning professional in August 1997. He joined Wrexhamon loan in February 1998 until the end of that season and made his league debut for Wrexham on 24 February 1998 when he came on as a 38th-minute substitute for injured goalkeeper Mark Cartwright in the game away to Burnley. With the score at 1–1 and no reserve keeper on the bench, midfielder Gareth Owen went in goal and Wrexham went on to win with Wilson scoring the winner. He finally made his Manchester United debut on 28 October, starting the 2–0 League Cup win at home to Bury, and played once more that season, again in the League Cup.
Having failed to establish himself at Old Trafford, despite appearing in both the Champions League and the Premier League, Wilson left to join Middlesbrough in August 2001 for £1.5 million, as part of a £3.5 million deal that also took his teammate Jonathan Greening to the Riverside. Unable to settle at Boro, but scoring twice in the League Cup against Northampton and Brentford, he had loan spells with Stoke City, Swansea City, Sheffield Wednesday, Doncaster Rovers, and finally Livingston.
After several loan spells over the previous seasons, Wilson left Middlesbrough for FC Dallas in the spring of 2005; however, it took until 1 September 2005 for him getting clearance to play for the MLS side. He was released by Dallas in August 2006 after deciding to return home to England after having played 20 league games, scoring 1 goal, having an unsuccessful trial with Bradford City in October that year.
Doncaster Rovers
After his unsuccessful trial at Bradford, Wilson joined League One side Doncaster Rovers on a short-term contract the following month, and, during the January 2007transfer window, signed an 18-month contract. At Doncaster, Wilson was a regular for the club under Sean O'Driscoll, but suffered a hernia problem, which left him struggling to force his way back into contention having lost his place in the side to Paul Green. Despite this, Wilson signed a two-year-deal at the end of the 2007–08 season. In November 2008, he joined Tranmere Rovers on a one-month loan deal after making seven Championship starts. Wilson renewed his contract with Rovers in the summer of 2010, keeping him at the club until the summer of 2012. To get first team opportunities, Wilson joined Walsall on a one-month loan from Doncaster Rovers in November 2011 and played six games before being recalled by Doncaster on 28 November 2011. In the 2011–12 season, his final season at Doncaster Rovers, he failed to make a single start, with his contract being cancelled by mutual consent in January. Wilson made 110 starts along with 47 substitute appearances for Rovers in all competitions during his time at the club.
Later career
On the last day of the January 2012 transfer window, Oxford United signed Wilson on a free transfer. In May 2012, Wilson was released by the club after being deemed surplus to requirements, having made just six league appearances. Gainsborough Trinity took on Mark in December 2012 on a match by match basis, his first game being at Bradford Park Avenue on 17 December 2012. He resigned for Doncaster on a non-contractual basis on 7 March 2013, though didn't make any appearances and wasn't with the club at the beginning of the following season. He is now working as a regional director of youth coaching in the north-east of the United States.