The Croatian sent a downward header straight at Donnarumma during a first half that saw Juventus control possession without carrying too much of an attacking threat.
Milan: Donnarumma (5), Calabria (5.5), Bonucci (6), Romagnoli (5.5), Rodriguez (5.5), Kessie (6), Locatelli (6.5), Bonaventura (6), Suso (6), Cutrone (5.5), Calhanoglu (6.5). In the second period, Mario Mandzukic capitalised on a deflected through-pass to go in on goal, and the Croatian dinked the ball over the keeper to book Juve's passage into the semi-finals. Then Kalinic headed a corner into his own net.
Massimiliano Allegri's side are one point away from claiming a seventh consecutive Serie A title with two games to play and could seal it this weekend against Roma in the same Stadio Olimpico stadium.
Juventus has won a total of 13 Italian Cups, at least four more than any other team.
In the final, which was held in Rome, Juventus defeated Milan 4:0.More news: Dozens killed as dam bursts in Kenya
More news: Tristan Thompson Spills Details About His & Khloe Kardashian's New Daughter True
More news: At Least 2 Reportedly Dead, 6 Injured After Explosions In Kabul
Instead, Juventus upped the intensity after the restart, taking a 1-0 lead in the 55th minute as Benatia headed-in Miralem Pjanic's corner. In the second leg, Pjanic scored a penalty 15 minutes from time when Blaise Matuidi was fouled in the area to hand Juve a 2-0 win on aggregate.
The fourth goal killed off the game as Juventus pocketed their first title of the season, with Allegri's side on the verge of sealing yet another league title in the next few days.
"The lads had an extraordinary game and deserved this win. Now we have to wrap up the league title".
Juve will be looking to win the trophy for the fifth season in a row, and for the 16th time overall, while Milan will want to take their win total in the tournament to five.
"I think it hurts more that we took 40,000 fans here and gave them a result like this", said Gattuso.