Estrada (6-8) allowed five hits, one walk and three runs while striking out five in six innings in winning for the second time in four starts.
Donaldson, who had three hits and three RBIs, started a six-run fifth for Toronto (61-68) with a two-run homer.
Max Kepler hit his second career grand slam for Minnesota (66-63).
Eduardo Escobar added a two-run homer for the Twins and Joe Mauer had three hits.
Toronto's Roberto Osuna allowed two unearned runs in the ninth to pick up his 34th save.
He allowed a leadoff single to pinch hitter Zack Granite. First baseman Justin Smoak committed a two-base error on Escobar's grounder, and Brian Dozier hit an RBI single. Mauer bounced back to Osuna to start a double play as a run scored, but the game ended when Jorge Polanco grounded out.
Minnesota starter Dillon Gee (1-1) allowed seven hits, one walk and four runs in four-plus innings.
The teams have split the first two games of a three-game series.
Morales hit his 22nd homer of the season in the second inning.
The Blue Jays loaded the bases on three singles, including a bunt hit by Donaldson, with none out in the third but could score only once on a sacrifice fly by Jose Bautista.
Estrada retired his first seven batters before walking Mitch Garver. Mauer led off the fourth with a single, the Twins' first hit.
Escobar tied the game with his 12th homer of the season in the fifth, a blast to right that came two batters after a single by Kennys Vargas.
The Blue Jays scored six runs in the bottom of the fifth to lead 8-2.
Donaldson hit his 23rd homer of the season, a two-run shot, that also scored Ezequiel Carrera, who led off with an infield single.
Tyler Duffey replaced Gee and allowed a walk, three straight singles, including an RBI hit by Kevin Pillar, and a sacrifice fly by Ryan Goins.
Ryan Pressly took over from Gee and gave up a two-run single to Raffy Lopez.
The Twins scored once in the sixth when Mauer singled, Polanco doubled and Eddie Rosario hit a sacrifice fly.
Danny Barnes replaced Estrada and pitched a perfect seventh.
Tim Mayza gave up a double and a single in the eighth before being replaced by Ryan Tepera with two outs. Tepera hit his first batter, Byron Buxton, to load the bases for Kepler, who hit his 17th homer of the season to cut the lead to 8-7.
Minnesota's John Curtiss, who made his major league debut Friday, walked Carrera to lead off the bottom of the eighth. Carrera stole second, took third on a throwing error by a catcher Garver and scored on Donaldson's bloop double down the right-field line.
Donaldson took third on a groundout and scored on a wild pitch. After Bautista walked, Trevor Hildenberger replaced Curtiss and finished the inning with two strikeouts.
NOTES: Toronto RHP Joe Biagini (3-8, 5.11 ERA) will be recalled from Triple-A Buffalo Sunday to start the finale of the three-game series with the Minnesota Twins. He was 1-1 with a 3.12 ERA in four starts at Buffalo. Biagini is 2-7 with a 5.60 ERA in 11 starts with Toronto this season and is 1-1 with a 4.26 ERA in 26 relief outings. He will face Twins RHP Kyle Gibson (7-10, 5.76 ERA). ... The Twins ended a seven-game losing streak at the Rogers Centre with their win in the series opener on Friday.