Soprannominato Sonny, in singolare ha vinto 4 tornei ATP, uno per ogni ambiente di gioco attualmente in uso (cemento indoor, cemento outdoor, terra battuta ed erba). Vanta come migliore classifica la 21ª posizione raggiunta nell'ottobre 2021. In doppio ha conquistato tre titoli ATP e ha raggiunto la 60ª posizione il 12 settembre 2022.
Nei tornei del Grande Slam il suo miglior risultato è stato il quarto di finale raggiunto agli Australian Open 2025.
Nel 2023 e nel 2025 si è laureato campione del mondo grazie alla conquista della Coppa Davis da parte della nazionale italiana. Nell'edizione del 2023, anno in cui l'Italia vinse il titolo mondiale dopo un'attesa di 47 anni, ebbe un ruolo decisivo sia in singolare sia in doppio nella fase a gironi e come compagno di Jannik Sinner nei due doppi decisivi di quarti e semifinale nella fase ad eliminazione diretta.
Biografia Figlio di Giorgio e Federica, la scelta di intraprendere la carriera tennistica è stata influenzata dal padre. Cresce avendo come idoli Roger Federer e Jo-Wilfried Tsonga, nonché il calciatore Ronaldinho. È un grande tifoso del Torino e spesso lo ha omaggiato in interviste e usando, nel periodo del COVID-19, una mascherina personalizzata della squadra granata.
Carriera
2013-2015: esordi e primi titoli ITF Futures Nel settembre 2013 debutta tra i professionisti con una sconfitta nel torneo di doppio del Futures Italy F27. Inizia a giocare con continuità nel circuito a partire dalla sua seconda apparizione, che avviene nel luglio 2014 al France F15, dove esordisce in singolare con una sconfitta e vince il suo primo incontro nel torneo di doppio. Vince per la prima volta in singolare in agosto all'Italy F25 e si spinge fino ai quarti di finale. In settembre raggiunge la semifinale del Futures Italy F30. La settimana dopo disputa a Biella il suo primo torneo Challenger, supera le qualificazioni e vince al primo turno del tabellone principale, venendo eliminato al secondo turno.
Nel marzo 2015 raggiunge la prima finale al torneo di doppio del Futures Turkey F12 in coppia con Edoardo Eremin, cedendo in tre set a Matteo Berrettini / Filippo Baldi. In maggio gioca la prima finale in singolare all'Italy F11 di Lecco e in settembre alza i primi trofei da professionista all'Italy F26 di Santa Margherita di Pula; trionfa in finale sia in singolare, battendo Daniel Altmaier, che in doppio, superando con Filippo Baldi la coppia Florian Fallert / Demian Raab. La settimana successiva si conferma campione di doppio a Pula, vincendo l'Italy F27 in coppia con Julian Ocleppo. Il mese dopo, sempre a Pula, vince di nuovo il titolo sia in singolare che in doppio all'Italy F32. Una settimana più tardi perde la finale dell'Italy F33. Nel corso dell'anno non va mai oltre il secondo turno nel circuito Challenger e finisce la stagione con il nuovo best ranking al 370º posto mondiale.
2016: esordio ATP Nel 2016 si dedica quasi esclusivamente ai tornei Challenger. Ottiene il primo risultato importante all'Open Barletta battendo al secondo turno il nº 127 ATP Andrej Martin prima di cedere nei quarti al nº 120 Adam Pavlásek. Il suo esordio nel circuito ATP avviene in maggio con una wild card agli Internazionali d'Italia, dove al primo turno viene sconfitto in rimonta da João Sousa. I quarti di finale che raggiunge ad agosto nei Challenger di Cordenons e Manerbio gli consentono di arrivare al 259º posto del ranking. In novembre raggiunge la prima semifinale Challenger agli Internazionali di Ortisei e viene battuto dal nº 140 ATP Alessandro Giannessi.
2017: primo titolo Challenger Nella prima parte della stagione 2017 viene sempre eliminato ai primi turni e in agosto scende alla posizione nº 446 del ranking. Rientra nel circuito Futures e il 1º ottobre vince l'Italy F31 a Pola battendo in finale Javier Marti. Due settimane dopo vince il suo primo titolo Challenger agli Internazionali di Ortisei; al primo turno batte per la prima volta un top 100, il nº 81 Norbert Gombos, e in finale supera Tim Pütz con il punteggio di 6–4, 6–4. La settimana successiva, dopo 9 successi consecutivi, perde 4–6, 6–3, 5–7 la finale dell'Ismaning Challenger contro Yannick Hanfmann. Migliora così il best ranking e, dopo le successive due finali Futures perse a Pula, a novembre sale al 204º posto mondiale. A fine mese vince il primo titolo Challenger in doppio ad Andria in coppia con Andrea Vavassori ed entra per la prima volta nella top 400 della specialità.
2018: primo quarto di finale ATP, secondo titolo Challenger e top 90 In gennaio supera per la prima volta le qualificazioni nel circuito maggiore all'Australian Open, battendo nell'ordine Thiago Monteiro, Mohamed Safwat e l'ex nº 17 del mondo Bernard Tomić. Fa così il suo debutto nel tabellone principale di uno Slam e vince il suo primo incontro ATP battendo Robin Haase, nº 43 del ranking, con il punteggio di 6–3, 7–5, 6–7, 7–5. Al secondo turno raccoglie solo 7 giochi contro Richard Gasquet. Grazie a questo risultato entra per la prima volta in top 200, alla 173ª posizione. Eliminato nelle qualificazioni all'ATP 250 di Sofia, raggiunge le semifinali al Challenger di Bergamo ed esce nelle qualificazioni anche a Monte Carlo e viene subito battuto da García-López. Supera invece con successo le qualificazioni a Budapest eliminando Melzer e Maden, sconfigge quindi Hurkacz e al secondo turno si prende la rivincita su Gasquet, conquistando i primi quarti di finale in carriera in un torneo ATP. Perde in tre set contro Aljaž Bedene e a fine torneo sale alla 141ª posizione nel ranking ATP.
Supera il torneo di pre-qualificazione e ottiene una wild card per il tabellone principale degli Internazionali d'Italia e al primo turno sconfigge in rimonta Adrian Mannarino ottenendo il primo successo in un Masters 1000, prima di essere eliminato da Peter Gojowczyk. Non supera invece le qualificazioni al Roland Garros. Al Queen's di Londra, nel suo debutto assoluto sull'erba, viene sconfitto da Taylor Fritz. Entra nel tabellone principale di Wimbledon come lucky loser e viene nuovamente sconfitto all'esordio da Taylor Fritz. Torna a giocare sulla terra rossa e rimedia altre due sconfitte al primo turno, a Bastad e ad Amburgo, mentre non va oltre il secondo turno a Kitzbühel.
Torna a giocare dopo quasi un mese agli US Open, dove viene ripescato come lucky loser e, al suo esordio nel tabellone principale, sconfigge in rimonta Gilles Müller, vincendo per la prima volta in carriera al 5º set. Al secondo turno viene eliminato in tre set da Karen Chačanov. La settimana successiva vince il Challenger da 127.000 euro di Genova sconfiggendo nell'ordine Stéphane Robert, Aleksej Vatutin, Hubert Hurkacz, Federico Delbonis e in finale Dustin Brown per 6–2, 6–1. A fine torneo fa il suo debutto tra i top 100 del ranking ATP, al 90º posto. Alla prima edizione del Challenger di Firenze esce in semifinale per mano di Pablo Andújar e a fine torneo porta il best ranking all'86º posto. Negli ultimi 5 tornei Challenger stagionali raggiunge solo una volta i quarti di finale e chiude l'anno alla 107ª posizione ATP.
2019: primo titolo ATP, quarti a Montecarlo e top 50 Inizia la stagione al Challenger di Playford come prima testa di serie e viene eliminato nei quarti da Mats Moraing, mentre non supera le qualificazioni agli Australian Open. All'ATP 250 di Cordoba concede solo 5 giochi a Pablo Andújar e al secondo turno viene sconfitto da Juan Ignacio Londero, futuro vincitore del torneo. Supera le qualificazioni a Buenos Aires, al primo turno del tabellone principale sconfigge in rimonta Nicolás Jarry e cede al secondo contro Roberto Carballés Baena. In febbraio partecipa per la prima volta a un torneo ATP 500 a Rio de Janeiro e viene eliminato al primo turno da Albert Ramos Viñolas. A San Paolo elimina Federico Delbonis prima di lasciare il passo a Leonardo Mayer al secondo turno. Al Challenger 125 di Phoenix viene sconfitto nei quarti da Matteo Berrettini, futuro vincitore del torneo, dopo aver eliminato al secondo turno il nº 37 del mondo Jérémy Chardy. Al torneo di Miami supera le qualificazioni e vince il suo secondo incontro nel tabellone principale di un Masters 1000 sconfiggendo Martin Kližan, nel turno seguente si arrende in due tie-break a John Isner, campione in carica e futuro finalista del torneo.
Anche al 250 di Marrakech supera le qualificazioni e raggiunge per la seconda volta in carriera i quarti di finale di un torneo ATP eliminando Laslo Đere e Robin Haase, prima di cedere in due set a Jo-Wilfried Tsonga, ex nº 5 del mondo. Al successivo torneo di Monte Carlo Masters 2019 raggiunge per la prima volta i quarti di finale in un Masters 1000. Supera le qualificazioni e fa il suo esordio assoluto nel main draw di questo evento eliminando Andreas Seppi e al secondo turno il nº 12 del mondo Karen Chačanov, il giocatore con la migliore classifica da lui battuto fino a quel momento. Gli ottavi lo vedono imporsi su Cameron Norrie e viene eliminato in due set da Dušan Lajović, finalista del torneo. Grazie ai risultati ottenuti nel Principato, il 22 aprile raggiunge la posizione nº 66 della classifica mondiale. Esce quindi al primo turno a Monaco, agli Internazionali d'Italia, a Ginevra e al suo esordio assoluto nel tabellone principale del Roland Garros. A Parigi termina invece al secondo turno la sua prima esperienza in doppio in una prova del Grande Slam, cui partecipa in coppia con Matteo Berrettini, dopo aver sconfitto al primo turno le teste di serie nº 2 Bruno Soares e Jamie Murray vengono eliminati da Guido Pella e Diego Schwartzman.
La sua stagione sull'erba comincia con le eliminazioni al primo turno a s-Hertogenbosch e nelle qualificazioni ad Halle. Il 29 giugno conquista nel 250 di Adalia il suo primo titolo ATP: al turno d'esordio vince contro João Sousa il suo primo incontro in assoluto sull'erba e nei due turni successivi si impone in rimonta su Prajnesh Gunneswaran e Adrian Mannarino. In semifinale supera in due set Pablo Carreño Busta e nell'atto conclusivo trionfa in tre set su Miomir Kecmanović, dopo aver salvato un match-point nella seconda partita, diventando il 25º tennista italiano a conquistare un titolo ATP nell'era Open, e il terzo a compiere l'impresa sull'erba. Grazie ai 250 punti conquistati, il 1º luglio sale alla posizione nº 46 della classifica mondiale. A Wimbledon esce di scena al primo turno. Al primo turno a Kitzbühel la spunta su Federico Delbonis in tre tie-break salvando otto match-point nel set decisivo. Salva un match-ball anche nel terzo set contro Roberto Carballés Baena nel quale era in svantaggio per 5 giochi a 2. Nei quarti sconfigge in due set l'ex nº 7 del mondo Fernando Verdasco per poi arrendersi in due set in semifinale a Dominic Thiem, nº 4 del ranking e futuro vincitore del torneo. Agli US Open entra per la prima volta nel tabellone principale per diritto di classifica e supera al primo turno Marcel Granollers, prima di arrendersi a Pablo Andújar. Bissa il successo dell'anno precedente al torneo di Genova (suo terzo Challenger in carriera) sconfiggendo in finale Alejandro Davidovich Fokina al tie-break del terzo set. Nell'ATP 250 di Metz esce al secondo turno per mano di Lucas Pouille. Eliminato al primo turno negli ultimi 5 tornei disputati in stagione, a novembre viene convocato per la prima volta nella squadra italiana di Coppa Davis per le sfide del Gruppo Mondiale, ma non disputa alcun incontro.
2020: campione assoluto d'Italia, ottavi al Roland Garros, finale di ATP 500 e top 40