MacDonald started his career in the youth team at Burnley and signed a two-year scholarship in 2006, after previously having a trial at Liverpool. He impressed for the youth team and was voted Youth Team Player of the Year for the 2007–08 season, being rewarded with a professional contract in the summer of 2008. He made his debut on 26 April 2008, coming on as a substitute for Wade Elliott in the Championship 3–3 draw against Cardiff City in the final home game of the season. He also featured a week later in the final game of the season, a 5–0 defeat to Crystal Palace. In the 2008–09 season he featured mainly in the reserve side; however, he did make six appearances as a substitute for the first team, with his first coming in a 3–2 away win over Sheffield United. He also featured heavily in the FA Cup, making three appearances in the run to the sixth round, which came to an end in a 3–0 defeat against Arsenal. When Burnley got promoted to the Premier League in May 2009 via the play-offs, MacDonald struggled to fight for a place in the team and joined Scottish Premier League side Falkirk on a six-month loan in July. He made his debut for the Bairns on 16 July 2009 in the Europa League second qualifying round tie first leg tie against FC Vaduz of Liechtenstein, starting the match in a 1–0 win. He made thirteen appearances in all competitions during his stay with the Scottish club, scoring no goals before returning to Turf Moor in January 2010. He suffered a double hernia injury towards the end of the season and did not feature for the rest of the campaign. He suffered greater troubles when his mother died in March, but he continued to train as usual with the first team as the Clarets were relegated from the Premier League. MacDonald thought he would feature more in the 2010–11 season under Brian Laws in the Championship, but he didn't find himself in contention for the first team and was again sent on loan again to Scotland in January 2010, joining SPL side Inverness Caledonian Thistle until the end of the season. He made his first appearance for Terry Butcher's side on 5 February 2011, in 5–1 victory over Morton in the Scottish Cup second round, coming on as a substitute for Adam Rooney. He scored his first goal for the club 5 March 2011, scoring with his first touch in a 3–0 win over Motherwell in the SPL after coming on as a substitute. After a very impressive pre-season in 2011, MacDonald finally broke back into the Burnley team on 20 August 2011, coming on as a late substitute for Ross Wallace in a 1–1 draw against Cardiff City. On 31 January 2012, he was loaned to League Two side Plymouth Argyle on an emergency loan until 6 March. MacDonald extended his loan with the club until the end of the campaign on 28 February. On 31 August 2012 Alex re-signed for Plymouth Argyle until 6 October on an emergency loan. On 1 October, after his loan spell was extended, Alex expressed his liking for the club and the city by saying that he wanted a permanent move to Plymouth. On 4 December, he returned to Burnley from his loan spell. On 31 January 2013, he joined League Two side Burton Albion on an initial one-month loan. After his release from Burnley in May 2013, MacDonald joined Burton on a two-year contract. On 2 February 2015, MacDonald joined Oxford United on a two-and-a-half-year contract. On 31 January 2017, he left Oxford by mutual consent, and signed for Mansfield Townlater that day. While with Oxford, he scored 12 goals in 97 appearances, 9 of them in league matches. He was released by Mansfield at the end of the 2019–20 season.
International
MacDonald was born in England, but qualified to play for Scotland through his father. He scored in his second appearance for the under-19s against Azerbaijan on 20 October 2008 and scored two more against San Marino a couple of days later. In his fifth match for the team, against France on 25 February 2009, MacDonald captained the side and scored twice. In total, he received eight caps at under-19 level and scored seven goals. He made his under-21 debut on 17 November 2010 against Northern Ireland and scored his first goal for the team in his fourth appearance, against Luxembourg. He dedicated the goal to his mother, Janette, who died 18 months earlier at the age of 40.