Ha iniziato la carriera giocando da ala,[1] per poi diventare un terzino destro.[1][2] Giocatore di sacrificio, è dotato di buon atletismo e qualità.[2] Bravo in dribbling,[2] è un buon crossatore ed è abile a disorientare gli avversari tramite finte.[2]
Carriera
Club
Gli inizi, il passaggio all'Atalanta e gli anni ad Avellino
Cresciuto nel vivaio del Sora,[3] inizia la sua carriera professionistica con l'Isola Liri, con la quale esordisce a 17 anni in Lega Pro Seconda Divisione ottenendo un totale di 14 presenze e un gol in campionato.
In seguito, nel gennaio 2011, viene acquistato dall'Atalanta, con cui gioca per 6 mesi nella squadra Primavera.[1]
Nell'estate 2011, a 19 anni, viene ceduto in comproprietà all'Avellino,[4] con cui milita per due stagioni consecutive in Lega Pro Prima Divisione, vincendo il campionato nella stagione 2012-2013 e la Supercoppa di Lega di Prima Divisione. Dopo la promozione in Serie B decide di tatuarsi la data 5-5-2013.[5] L'anno seguente segna un gol all'esordio in Serie B nella partita vinta 2-1 contro il Novara e si distingue in breve come uno dei migliori esterni del torneo cadetto.
Ritorno all'Atalanta
Il 19 giugno 2014 Atalanta ed Avellino rinnovano la compartecipazione per un'altra stagione, con l'accordo che il giocatore vestirà la maglia del club bergamasco nella stagione 2014-2015[6].
Fa il suo esordio in gare ufficiali con la squadra bergamasca il 23 agosto 2014 in Atalanta-Pisa (2-0), partita valida per il terzo turno preliminare di Coppa Italia.
Il successivo 31 agosto, a 22 anni, fa il suo esordio in Serie A, giocando da titolare nella partita Atalanta-Verona (0-0). Il 6 gennaio 2015 realizza il suo primo gol in Serie A, in Genoa-Atalanta (2-2); si ripete la settimana successiva contro il Chievo a Bergamo.
Chiude la stagione con 3 reti in 29 presenze in Serie A e una presenza in Coppa Italia.
Torino
Il 10 luglio 2015 viene acquisito a titolo definitivo dal Torino,[7] in un'operazione che porta alla squadra piemontese anche il centrocampista Daniele Baselli.[8] Il cartellino del laterale viene valutato 3,5 milioni di euro. Segna il suo primo gol con la maglia granata il 28 ottobre 2015 nel pareggio interno per 3-3 contro il Genoa, e totalizza 25 presenze in campionato a fine stagione.
Nel campionato 2016-2017, complice anche la cessione del compagno Bruno Peres (al quale contendeva la titolarità nella posizione di esterno difensivo destro) alla Roma, si impone come pedina fissa nello scacchiere del nuovo allenatore granata Siniša Mihajlović, venendo regolarmente preferito al neo-acquisto Lorenzo De Silvestri;[1] le buone prestazioni e la continuità di rendimento valgono inoltre al terzino la convocazione in nazionale. Il 23 aprile 2017 segna il suo primo gol stagionale a Verona sul campo del Chievo nella vittoria dei granata per 3-1.
Conclude la sua esperienza in maglia granata, dopo aver collezionato 58 presenze e 2 reti.
Chelsea
Il 31 agosto 2017 viene acquistato dal Chelsea per una cifra complessiva di 25 milioni di euro più bonus[9]. Sotto la direzione dell'allenatore italiano Antonio Conte esordisce in Premier League il 9 settembre seguente, sostituendo Victor Moses al 74' della partita vinta 2-1 contro il Leicester City.[10][11] Il 12 settembre bagna con un gol il suo esordio assoluto nelle coppe europee, nella partita della fase a gironi di Champions League contro il Qarabağ (6-0), nella quale realizza il raddoppio dei Blues con un tiro da lontano; con questa rete, Zappacosta diventa il 100º calciatore italiano ad andare a segno dall'istituzione della Champions League (escludendo, quindi, il periodo in cui il torneo era denominato Coppa dei Campioni)[12]. Il 30 dicembre realizza la sua prima rete in campionato fissando il definitivo 5-0 nella partita casalinga vinta contro lo Stoke City. Nella sua prima stagione a Londra ottiene 35 presenze in tutte le competizioni e vince la FA Cup, non venendo però schierato nella finale vinta 1-0 contro il Manchester Utd.
Nella seconda stagione ai Blues, Zappacosta trova un altro allenatore italiano, Maurizio Sarri, con il quale riesce ad entrare in sintonia[13], pur non ricevendo la stessa fiducia sul campo: il terzino italiano viene così relegato prevalentemente alla panchina, pur trovando un discreto impiego in Europa League, competizione nella quale debutta il 20 settembre 2018, disputando per intero il match contro il PAOK.[14][15] Pur non riuscendo a spuntarla sul Manchester City né in Community Shield né in finale di coppa di lega[16][17], il Chelsea riesce ad aggiudicarsi l'Europa League a danno dell'Arsenal, primo trofeo internazionale di Zappacosta.[18]
Prestiti a Roma e Genoa
All'inizio del terzo anno a Londra, Zappacosta resta ai margini della rosa, a causa delle scelte tattiche del nuovo allenatore, Frank Lampard.[19] Il 21 agosto 2019 viene ceduto in prestito alla Roma.[20] Debutta con i giallorossi il 25 agosto successivo, subentrando a Florenzi nella gara di campionato contro il Genoa.[21] Dopo tale presenza, Zappacosta rimedia un crescendo di problemi fisici che culmina con la rottura del legamento crociato, ragion per cui rimane a lungo lontano dal campo[22]: ciononostante, nel gennaio 2020 il prestito del terzino viene rinnovato automaticamente fino a giugno.[23] Proprio a giugno torna in campo in occasione del successo per 2-1 contro la Sampdoria.[1][24]
Il 4 agosto 2020 il prestito termina e lui ritorna al Chelsea[25] che il 19 settembre seguente lo cede nuovamente a titolo temporaneo, questa volta al Genoa.[26][27] Segna subito all'esordio nel 4-1 contro il Crotone, siglando il 3-1 con un tiro da fuori area. In tutto saranno 4 i gol messi a segno in 25 presenze di campionato.
Secondo ritorno all'Atalanta
Il 24 agosto 2021 viene acquistato a titolo definitivo dall'Atalanta, ritornando così nel club bergamasco a distanza di 6 anni dalla sua cessione al Torino.[28][29] Quattro giorni dopo fa il suo secondo esordio con la maglia dell'Atalanta entrando nei minuti finali al posto di Joakim Mæhle nella gara pareggiata col Bologna, mentre il 21 settembre successivo trova anche il gol nella partita col Sassuolo, vinta per 2-1.[30] Il 10 febbraio 2022 segna il suo primo gol in Coppa Italia, e più in generale nelle coppe nazionali, contro la Fiorentina, nei quarti di finale, partita poi persa 2-3 dalla sua squadra. Nella stagione 22-23 segna 4 gol in 21 presenze.
Nell'annata 2023-2024, contribuisce alla vittoria dell'Europa League da parte degli orobici, arrivata in seguito al successo in finale sul Bayer Leverkusen (in cui Zappacosta ha anche servito uno degli assist per Ademola Lookman), che ha rappresentato il primo trofeo europeo nella storia del club.[31][32]
Nel maggio 2016 riceve la sua prima convocazione in nazionale, per uno stage di preparazione del CT Antonio Conte in vista dell'Europeo 2016. Viene poi inserito nella lista dei 30 giocatori pre-convocati per la manifestazione e infine aggregato ai 23 convocati come riserva, al pari di Rugani e Benassi.[34] Viene convocato anche dal nuovo CT Gian Piero Ventura ed esordisce in nazionale il 12 novembre 2016, a 24 anni, giocando titolare nella gara per le qualificazioni al Mondiale 2018 contro il Liechtenstein vinta 4-0 a Vaduz.[35]