Born in Carnoustie, McDonald was initially signed as a youngster by Dundee and worked his way into the first team for the Scottish Championship side. He had been the subject of a £75,000 bid from Celtic in June 2006 which was rejected by Dundee. By May 2008, Dundee manager Alex Rae told the media that he would let McDonald leave the club if a suitable offer was received. On the same day it was revealed that Dundee had rejected an offer of £250,000 from English Championship side Burnley.
Burnley
Burnley eventually had a second offer of £500,000 accepted, and McDonald was signed on a three-year deal, scoring his first goal for the club in a 3–0 win over Derby County at the end of November 2008. In Burnley's 2008–09 League Cup campaign Kevin McDonald scored both goals in a 2–0 win over Arsenal at Turf Moor. His second strike against the Gunners was particularly precise, an outside of the right foot strike from the edge of the area. This moment proved to be the peak of a promising Burnley career, little did the fans know what would happen against Man City in the 2009–10 season. Out of the first team he signed for Championship rivals Scunthorpe United on a one-month loan in October 2010 followed by another loan to League One side Notts County in February 2011, running until the end of the season.
Sheffield United
At the end of the 2010–11 season McDonald was released by Burnley and undertook a trial with League One Sheffield United leading to a one-year contract with the South Yorkshire club. McDonald made his debut for the Blades against Brentford on 13 August 2011. Initially used as a substitute he gradually became the focus of the team's midfield and a regular starter as the season progressed and the team contested for a promotion place. An injury during the play–off semi-final victory against Stevenage meant that McDonald missed the play-off final, which was lost on penalties to Huddersfield. Out of contract, it was initially uncertain whether he would return to the club, but following negotiations he signed a new two-year contract with Sheffield United at the end of July 2012 whilst in Malta on their pre-season tour.
Wolverhampton Wanderers
On 14 August 2013 McDonald moved to fellow League One club Wolverhampton Wanderers, signing a three-year contract for an undisclosed fee. After making his Wolves debut as a substitute in a 2–1 win at Bristol City on 17 August 2013, he scored his first goal two weeks later in a 3–1 win at Port Vale on 31 August. McDonald became a regular starting player in the Wolves' side that set a new League One points record as it won the division. At the conclusion of the campaign, he won both the Fans' as well as the Players' Player of the Season Awards, having been already also named in the PFA's League One Team of the Year. At Championship level, he remained a regular member of Wolves' team, featuring in every league game as the club missed out on the play-off on goal difference. Over the summer he attracted interest from fellow Championship club Fulham, who reportedly bid for the midfielder after failing to agree a new contract at Wolves. He admitted to being aware of the interest and said "it is obviously a bit unsettling not knowing where you are going to be". He subsequently agreed a new three-year deal at Wolves that was due to run until summer 2018.
Fulham
Despite his new contract agreement with Wolves, McDonald eventually moved to Fulham after the 2015–16 season, signing for the London club on 22 July 2016 for an undisclosed fee in a three-year deal. He scored his first goal for Fulham in a 2–2 draw with Cardiff City on 20 August 2016.
International career
McDonald received his first call up to the senior Scotland team when Gordon Strachan called him up for a match against Germany in August 2014. On 29 September 2015 he was called up again for games against Poland and Gibraltar. McDonald was selected again in March 2018, this time by Alex McLeish, for friendlies with Costa Rica and Hungary. He made his international debut in a 1–0 home defeat against Costa Rica.