Early career Born in
Sora, Lazio, Zappacosta joined hometown's
Sora's youth setup in 1998, aged six, as a
forward. In 2006–07 season, he was a player of Sora's under-15 team in Lazio Region Giovanissimi League. In 2008, he moved to neighbouring
Isola Liri, appearing in
Campionato Nazionale Dante Berretti under-20's, and made his senior debut for the side in the 2009–10 campaign; obtaining a total of 14 caps and a goal in the league.
Atalanta In January 2011 Zappacosta joined
Atalanta in a
co-ownership deal for €60,000 transfer fee. He played for the
Primavera for six months. He appeared during the pre-season with the main squad.
Avellino On 31 August 2011, at age 19, he was signed by
Avellino initially in temporary deal. The loan was turned into a co-ownership deal for €40,000 fee in 2012, He played 3 seasons for Avellino, which the first two seasons in
Lega Pro Prima Divisione, winning the championship of the Group B of the third-tier in the
2012–13 season as well as crowded as
the grand champions after winning
Trapani of the Group A. After promotion to
Serie B he decided to tattoo the date "05.05.2013". The following year he scored a debut goal in Serie B in the match won 2–1 against
Novara, standing out as one of the best
full backs in the league.
Return to Atalanta On 4 June 2014 Zappacosta returned to
Atalanta for €900,000 fee, signing a four-year deal. He made his official debut with
Atalanta on 23 August 2014 against
Pisa in a 2–0 win in the third qualifying round of the
Coppa Italia. On 31 August 2014 Zappacosta made his debut in
Serie A, starting in a 0–0 home draw against
Hellas Verona. On 6 January 2015 he scored his first
Serie A goal in the 37th minute of a 2–2 draw to
Genoa. On 11 January, one week later, he scored his second goal in the 72nd minute of a 1–1 home draw against
Chievo Verona. On 8 February, Zappacosta scored his third goal of the season in the 9th minute of a 3–2 away defeat against
Fiorentina. He finished the 2014–15 season to
Atalanta with 30 appearances, three goals and one assist.
Torino On 10 July 2015 he was sold to
Torino, in the same transfer that brought the midfielder
Daniele Baselli to
Piedmont, for a total of €10 million transfer fee. On 20 September, Zappacosta made his debut for Torino as a substitute replacing
Bruno Peres in the 76th minute of a 2–0 home win over
Sampdoria. He scored his first goal for the club on 28 October during a 3–3 draw at home to
Genoa. Zappacosta finished his first season to Torino with 26 appearances, one goal and one assist, and his second with 29 appearances, one goal and five assists. He signed a four-year deal at
Stamford Bridge. The transfer was completed minutes before the transfer window shut on deadline day. Zappacosta made his debut for Chelsea on 9 September as a substitute replacing
Victor Moses in the 74th minute of a 2–1 away win against
Leicester City. He made his
Champions League debut and scored his first goal for Chelsea on 12 September 2017, in a 6–0 home win against
Qarabağ FK. With this goal, Zappacosta became the 100th Italian player to score a goal in the Champions League. His first
Premier League goal came from outside the box in a 5–0 home win against
Stoke City on 30 December 2017. At the end of the season he was an unused substitute as Chelsea beat Manchester United in the
2018 FA Cup Final. On 29 May 2019, Zappacosta appeared in Chelsea's 4–1 victory over
Arsenal in the
2019 UEFA Europa League Final, coming on as a late substitute for
Eden Hazard.
Roma (loan) On 21 August 2019, Zappacosta signed a one-year extension to his contract at Chelsea and then joined
Roma on an initial six-month loan deal with an option to extend the loan until the end of the 2019–20 season. On 4 October 2019, Zappacosta suffered an
anterior cruciate ligament injury during training.
Genoa (loan) On 19 September 2020, Zappacosta returned to Italy with
Genoa on loan until the end of
2020–21 season. One day later on 20 September, he scored a goal on his league debut as Genoa beat
Crotone 4–1 at home.
Second return to Atalanta On 24 August 2021, Zappacosta returned to Bergamo to sign with Atalanta on a permanent deal for his third spell at the club. He carried out his medical and signed on a four-year contract the following day, reportedly signing from Chelsea for a fee of around €10 million, plus add ons. He scored his first goal in a 2–1 home win against
Sassuolo in September. On 22 May 2024, Zappacosta started in Atalanta's 3–0 victory over
Bayer Leverkusen in the
2024 Europa League final at the
Dublin Arena, setting up
Ademola Lookman's opening goal of the match. ==International career==