In the club's opening league match of the 2016–17 season against Torino, on 21 August, Donnarumma saved the first penalty of his professional career; he stopped Andrea Belotti's shot in injury time, which enabled Milan to seal a 3–2 victory at home. He kept his first clean sheet of the season in the 1–0 victory against Sampdoria on 16 September. On 23 December, Donnarumma helped lead Milan to victory in the Supercoppa Italiana, saving Paulo Dybala's penalty in a 4–3 shoot-out win following a 1–1 draw after extra time. On 15 June 2017, it was initially announced that Donnarumma would not be renewing his contract with Milan, however on 11 July, after much speculation, he renewed with Milan until 2021.
Donnarumma played his first European game in a 1–0 win against CS U Craiova in the first leg of Milan's Europa League third-round qualification match on 27 July 2017, in which he managed to keep a clean sheet. He also kept another clean sheet in the second leg the following week, as Milan beat their opponent 2–0. He kept his third consecutive clean sheet in the competition in Milan's 6–0 win against Shkëndija in the first leg of the play-off round. He kept another clean sheet in his first match in new Serie A season against Crotone. On 30 December 2017, Donnarumma played his 100th game for Milan in a 1–1 draw against Fiorentina; becoming the youngest player to make 100 appearances with Milan's jersey. On 28 February 2018, following a 0–0 aggregate draw after extra-time, Donnarumma saved two penalties in a 5–4 shoot-out victory over Lazio in the second leg of the Coppa Italia semi-finals in Rome, which allowed Milan to advance to the final of the competition. On 15 April 2018, Donnarumma became the youngest player to reach 100 appearances in Serie A, aged 19 years and 49 days, after a 0–0 home draw against Napoli. On 9 May, Donnarumma started in Milan's 4–0 defeat to Juventus in the Coppa Italia final, who won their fourth consecutive title.
Though predicted to attend the 2016 UEFA European Championship, Donnarumma did not make Antonio Conte's final squad for the tournament. On 27 August, he was called up to the senior squad by Gian Piero Ventura for a friendly against France on 1 September and a 2018 World Cup qualification match on 5 September against Israel, making him the youngest player, aged 17 years and six months, to be called up to the senior squad since 1911. On 1 September, in the match against France, Donnarumma made his senior debut, subbing out Gianluigi Buffon at the half-time mark of a 3–1 home loss; the youngest goalkeeper to ever play for Italy aged 17 years and 189 days. On 28 March 2017, he made his first starting appearance in a 2–1 away win over the Netherlands; the youngest goalkeeper for Italy to do so aged 18 years and 31 days.
In June 2017, he was included in the Italy under-21 squad for the 2017 UEFA European Under-21 Championship by manager Luigi Di Biagio. Italy were eliminated in the semi-finals following a 3–1 defeat to Spain on 27 June.