Gillingham scored three late goals to end their losing run in League 1.
Gary Madine put the visitors ahead from the penalty spot in the first half.
John Marquis levelled on his home debut with eight minutes left and McDonald scored six minutes later.
A stoppage-time goal from Jermaine McGlashan ensured the points were Gills.
Those goals ended a three game losing streak for the caretaker management team and lifted the side out of the drop-zone.
There was a surprise recall to the starting XI for midfielder Josh Pritchard. It was his challenge that led to Coventry’s penalty.
Making his debut at left-back for the Gills was West Bromwich Albion loanee Bradley Garmston.
The Gills were facing a Coventry side who had two familiar faces in their three-man attack. Simeon Jackson scored the play-off winning goal at Wembley in 2009.
Frank Nouble scored five goals in 13 league games for the Gills back in the 2011/12 season. He netted the winner for Coventry against the Gills at the Ricoh Stadium back in September.
Gillingham were playing their fourth game since the New Year’s eve sacking of Peter Taylor. They had lost their previous three, conceding nine goals in the process.
The home side weren’t short of chance in the first half but the majority were off target. Jake Hessenthaler went closest for the Gills with an overhead kick that struck the bar.
John Marquis also got a good sight of goal, after Cody McDonald’s shot was saved, but keeper Ryan Allsop got a vital touch to send the effort wide.
Despite the chance for the hosts, Coventry went into the break a goal ahead. Pritchard took Danny Swanson down in the box with the minimalist of contacts and Madine sent Stuart Nelson the wrong way with the spot-kick on 35 minutes.
Doug Loft and Pritchard both had early second half efforts go the wrong side of Allsop’s post. Coventry seemed happy to sit back and let the Gills have the ball, with the hosts finding it hard to create a clear-cut chance.
Pritchard had another effort on 66 minutes, on the edge of the box, but the powerful shot found the top of the Rainham End.
Marquis, who had numerous chances in the game, put a couple of headers wide as the Gills continued to press for the equaliser.
McGlashan's introduction gave the Gills a new dimension, as he joined the attack and the substition proved key.
The pressure finally paid off with eight minutes left when Marquis turned the ball home from close-range, after Allsop had saved Dack’s initial effort.
Gillingham took the lead from the penalty spot after sub Jermaine McGlashan was brought down in the box by Ryan Haynes. McDonald blasted home for his 12 goal of the season.
McGlashan slammed in a third in the 95 minute to make it 3-1 with an assist from Marquis.
Gillingham: Nelson, Hoyte, Garmston (Dickenson 83mins), Egan, Ehmer, Loft, Hessenthaler, Pritchard (McGlashan 70mins), Dack, Marquis, McDonald. Subs not used: Legge, Galbraith, G Morris, Norris, Romeo.
Coventry: Allsop, Willis, Webster, C Thomas (Barton 67mins), Fleck, Swanson (Finch 81mins), Martin, Haynes, Nouble, Madine, Jackson (Miller 77mins). Subs not used: Burge, Barton, Lawton, Evans, G Thomas.
Attendance: 5,141 (481 away)