McDonald was born in Witham, Essex. He started his career playing for Valley Swifts in the Braintree & North Essex Sunday League before being spotted by Witham Town. He made his debut at Witham aged 16 and stayed at the club for more than four years.
McDonald continued to turn out for Valley Swifts even after his move from Witham to Maldon Town in July 2008, before signing for Isthmian League Premier Division side Dartford in October 2008. Dartford put a stop to his Sunday League exploits and in his short 4-month stay at Princes Park he made 17+3 appearances scoring 19 goals in all competitions, including a hat-trick against Canvey Island on 30 December 2008. It was form such as this which attracted interest from higher league clubs such as Norwich and reportedly Crystal Palace, Charlton Athletic and Reading. On 26 January 2009, McDonald was accompanied by Dartford manager Tony Burman to Norwich City's training ground at Colney for a two-day trial at the club and the Darts' boss later commented that "he enjoyed the experience and in my opinion did not look out of place over the two days".
Norwich City
On 2 February 2009, it was announced that McDonald had joined Norwich City on a one-and-a-half year deal for an undisclosed fee. His first appearance for the club came three weeks later in the reserves' 3–0 win over Great Yarmouth Town, in which he scored the third goal. He made his professional first team debut on 10 March 2009, as a substitute against Cardiff City at Carrow Road and scored in injury time. In a League Cup tie against Sunderland on 24 August 2009, McDonald played as a goalkeeper for the final few minutes as Norwich had had a player sent off, goalkeeper Ben Alnwick injured and had used all available substitutions. Commenting after the match on organising his defence, he admitted; "If I'm being honest I didn't really know what I was doing!". McDonald signed a new two-year deal with the club in March 2010. In the 2009–10 season he helped Norwich to the League One title, having been mainly used as an impact substitute.
McDonald signed on loan for Gillingham for a season, in the deal which took Simeon Jackson to the Canaries. McDonald was handed the number 10 jersey, which had been vacated by Jackson's departure. He picked up a niggling injury in pre-season, but upon his recovery scored four goals in eight appearances. He scored the first professional hat-trick of his career against Stockport County on 8 January 2011, his contribution helping Gills to a 5–1 away win and expressed his desire to stay at the Kent club. On 21 April 2011, McDonald was named the ESPN PFA Fans' Player of the Year for the Football League Two. McDonald also won Gillingham's Player of the Year, Player's Player of the Year, Sponsor's Player of the Year and Goal of the Season at the end of season awards ceremony held on Sunday 8 May 2011. On 19 May 2011, McDonald revealed that he would not be returning to Gillingham.
On 31 August 2011 he signed for Coventry City for an undisclosed fee. He made his debut on 10 September in a 2–0 win against Derby County at the Ricoh Arena. He scored his first goal on 22 October in a 2–1 home defeat against Burnley. His second goal came on 6 March 2012, where he came off the bench to score a late equaliser in a 1–1 draw against Crystal Palace. On 31 March he scored in a 2–0 win against Hull City. He scored again in the following game; a 2–2 draw against Peterborough United. He scored his first goal of the following season on the opening day, opening the scoring in a 1–1 draw against Yeovil Town. On 28 August, he scored in a 3–2 win in the League Cup against midlands rivals Birmingham City. and he scored the winner in the 90th minute in Coventry's 1–0 against Oldham Athletic which was Coventry's first win on the season, However, when Coventry appointed Mark Robins He was deemed surplus to requirements and Robins made him available for transfer and his future at Coventry was left in doubt. But when Robins left for Huddersfield Town he was given a chance to prove himself to new manager Steven Pressley, on 16 March he scored the first and only goal of a 1–0 win over Hartlepool United.
Gillingham
In January 2013 McDonald rejoined Gillingham on a loan deal until the end of the season with the option of a callback after one month by Coventry. He scored on his début for the Gills against York City on 26 January, but was recalled to Coventry in early February. In July 2013, however, he signed a two-year contract with the "Gills" after Coventry agreed to terminate his contract. He signed a two-year contract extension on 12 March 2015 that would keep him with the Gills until the summer of 2017.
On 22 June 2017, McDonald joined League One side AFC Wimbledon on a free transfer. He scored his first goal for Wimbledon in an EFL Trophy tie against Barnet on 29 August 2017. On 2 August 2018, the club announced that his contract had been terminated by mutual consent.
Ebbsfleet United
On 26 November 2018, McDonald joined National League side Ebbsfleet United.