The British number three dropped the opening set but after saving a match point in a second-set tie-break, the 22-year-old ran out a 5-7 7-6 6-3 victor.
Edmund played four matches in reaching the semi-finals of the Austrian Open last week, and it appeared that the Beverley-based player was still fatigued during the opening stages of his contest with lucky loser Donskoy.
The Russian let slip a 3-0 lead but Edmund dropped serve in the 12th game of the set to concede the opener, and it was a similar story in the second as Donskoy moved into a 3-0 advantage.
However, Edmund battled back valiantly and after saving a match point at 7-6 down in the breaker, the world number 50 stormed back to take the contest into a decider.
Edmund seized his moment, taking a 3-0 lead in the third before successfully serving out the match in two hours and 21 minutes to set up a showdown with American Jack Sock.