Seconda punta[5], in grado di agire su tutto il fronte d'attacco.[6][7] È inoltre un ottimo rigorista[8]; nella sua carriera si è incaricato di battere 33 calci di rigore in partite ufficiali, trasformandone 27 (l'81% dei rigori calciati).[9]
Prelevato dalCatania all'età di 14 anni,[10] nel 2010 passa in prestito alGubbio, inLega Pro Prima Divisione.[11] L'8 maggio il Gubbio ottiene - con una giornata d'anticipo - l'aritmetica promozione inSerie B, da cui mancava dal 1947.[12] Conclude l'annata con 23 presenze e 5 reti in campionato.
Il 31 gennaio 2012 viene ceduto in prestito alLanciano.[13] Il 12 luglio passa a titolo temporaneo alComo.[14] All'esordio in campionato mette a segno una tripletta ai danni delSan Marino.[15] Per un breve periodo gioca nellaCanzese.
Il 2 settembre 2013 passa in comproprietà alCittadella.[16] Esordisce inSerie B il 14 settembre in Cittadella-Latina (0-0), subentrando al 59' al posto diDumitru.[17] Riscattato alle buste dai veneti,[18] il 1º luglio 2014 sottoscrive un contratto di tre anni con ilPescara[19] che - due giorni dopo - lo cede in prestito alTeramo, inLega Pro.[20]
A fine stagione si laurea capocannoniere del proprio girone con 22 reti[21], contribuendo alla storica promozione del Teramo nella serie cadetta, annullata per via di vicende legate al calcioscommesse.[22] Il 16 luglio 2015 passa a titolo definitivo al Teramo, firmando un contratto di tre anni.[23]
Risolto il contratto con gli abruzzesi - complice una clausola che prevedeva l'interruzione del rapporto in caso di condanna della società per illecito sportivo[24] - il 31 agosto viene prelevato a parametro zero dallaSalernitana.[25] Con 13 reti - di cui una ai play-out contro ilLanciano[26] - contribuisce alla salvezza dei campani.
L'11 luglio 2017 viene tesserato per tre stagioni dall'Empoli.[27] InToscana conquista la promozione inSerie A, trascinando la squadra alla vittoria delcampionato in tandem con il compagno d'attaccoCaputo, con cui forma una coppia gol da 49 centri complessivi (23 Donnarumma, 26 Caputo).[28]
Il 13 luglio 2018 passa alBrescia in cambio di 1.7 milioni di euro[29][30], firmando un quadriennale. Fin da subito, Donnarumma si mette in risalto e totalizza tre triplette controPadova (4-1), dove segna tre reti in 17'[31], Salernitana (3-1)[32], la sua ex squadra, eSpezia (4-4)[33], oltre a segnare, l'11 Novembre, una doppietta nel derby vinto per 4-2 con l'Hellas Verona[34]; diventa così il '' bomber '' delle Rondinelle e segna 21 reti nelle prime 23 giornate[35], vincendo i titoli di MVP dei mesi di Dicembre[36] e Gennaio[37]. In totale, mette a segno 25 reti incampionato, laureandosi capocannoniere[38] e conquistando la promozione in Serie A[39].
Esordisce inSerie A il 25 agosto 2019 contro ilCagliari, segnando dal dischetto la rete che consente allerondinelle di imporsi sui sardi per 1-0, dopo che gli era stato annullato un gol su azione[40] Inizia molto bene il campionato con 4 reti nelle prime 5 partite[41] ma con l'arrivo in attacco diMario Balotelli, perde il posto da titolare.[42] Riprende il posto con il rientro dall'interruzione dovuta allaPandemia di COVID-19, torna a segnare dopo 9 mesi nell'incontro con laFiorentina prima di ripetersi colGenoa nell'incontro successivo[43][44]. Alla 30ª giornata contribuisce con una rete al successo per 2-0 nel derby con l'Hellas Verona e afferma in conferenza stampa di credere nella salvezza, nonostante i 6 punti di distacco dal Genoa[45]. Termina la sua unica stagione in massima serie con 7 reti[46].
Il 10 agosto2023 viene ceduto in prestito per un anno alCatanzaro.[52][53] Esordisce con i Calabresi il 27 agosto, subentrando aIemmello al 58' in Catanzaro-Ternana (2-1).[54] Sette giorni dopo, nel successo esterno sulLecco (3-4) segna il gol del 4-2 all'88', tornando in gol in Serie B dopo quasi un anno.[55]
A fine stagione culminata con la conquista dei play-off ed uno score di 23 presenze e 3 reti, non viene riscattato tornando alla Ternana. Nella stagione 2025-2026 viene mandato in prestito alLumezzane.[56]