Ha iniziato a giocare nella squadra della sua città, il Cassino, nel campionato di Serie C2 1979-1980, in cui, giovanissimo, gioca 7 partite; l'anno successivo, a 16 anni, disputa il campionato Interregionale sempre a Cassino, segnando anche per la prima volta in carriera, giocando complessivamente 30 partite e 1 gol. L'anno successivo viene acquistato dal Treviso in Serie C1, dove gioca 26 partite segnando anche qui 1 gol.
Passato alle giovanili del Como nel 1982, dopo 2 stagioni senza gare nei professionisti è tornato nella Marca per 2 stagioni in cui vive la retrocessione in Serie C2. Dopo l'anno alla Ternana, in Serie C2, passa all'appena rifondato Palermo con cui conquista subito promozione in Serie C1. Gioca altre 2 stagioni in Sicilia (divenendo capitano rosanero)[3][4] raggiungendo la finale di Coppa Italia Serie C 1987-1988, persa nel doppio confronto col Monza, giocando entrambe le sfide.
Dopo la 1ª stagione, arriva sulla panchina berica Renzo Ulivieri che nel 1993 ha guidato il Vicenza alla promozione in Serie B: ha segnato un gol all'ultima giornata nella gara vinta dal Vicenza sulla Vis Pesaro 2-1.
A 29 anni, nel 1993, ha esordito in Serie B disputando 2 campionati cadetti sotto la guida di Francesco Guidolin con cui ha conquistato la promozione in Serie A nel 1995.
Lasciato il Vicenza dopo 9 anni in cui colleziona oltre 250 presenze in campionato, nel 1999 si trasferisce al Lecce, dove gioca 6 gare.
Chiuse la carriera da giocatore al Livorno in serie C1 nel campionato 2000-2001, perdendo la promozione in B ai playoff col Como, una delle sue prime squadre; a novembre è ingaggiato in C2 del Südtirol, ma non scende mai in campo.
Nella stagione seguente il Mantova accede, 4º in campionato, ai play-off, venendo eliminato: dopo aver eliminato in semifinale il Modena, pareggia 5-5 dopo la doppia sfida (4-2 a Mantova per i virgiliani, sconfitta 3-1 a Torino col Torino, risultato che porta il Torino in Serie A, piazzatesi meglio in classifica generale).
Sfiorata la 3ª promozione in altrettanti campionati, resta al Mantova e l'anno successivo conclude la stagione all'8º posto, sconfiggendo Juventus,[8]Napoli e Genoa.
Parma
L'estate 2007 va al Parma del neo-patron Tommaso Ghirardi in Serie A. La squadra ha un andamento deludente nelle prime otto giornate stabilendosi al terzultimo posto. La vittoria casalinga contro il Livorno per 3-2 salva la sua panchina. Nelle seguenti nove partite, Di Carlo ottiene due vittorie, quattro pareggi e quattro sconfitte e alla fine del girone d'andata, il Parma si stabilisce al 15º posto con 18 punti. Il girone di ritorno è negativo con soli sette punti conquistati in otto partite ed è esonerato dopo la sconfitta casalinga (1-2) con la Sampdoria del 9 marzo 2008 e il terzultimo posto.[9] In Parma-Catania, 1ª gara, ha una discussione con l'allenatore dei siciliani Silvio Baldini, con quest'ultimo che mentre Di Carlo si va a risedere sulla propria panchina, gli dà un calcio nel sedere. I 2 poi si sono chiariti e Baldini si è scusato con Di Carlo.[10]
Esordisce sulla panchina dei clivensi con sconfitta 0-2 dalla Juventus, seguita da quelle con Milan 1-0, Siena 0-2. Il 1º risultato utile è la vittoria in trasferta con l'Udinese 0-1, che spezza la serie di risultati negativi. Dopo la sconfitta in casa col Genoa 0-1, nel 2009 arrivano 4 sconfitte (Fiorentina, Milan, Udinese, Napoli), 6 vittorie (Napoli, Reggina, Atalanta, Lazio, Palermo, Siena) e 11 pari (tra cui 3-3 a Torino con la Juventus, 0-0 con la Roma, 2-2 con Inter). Porta il Chievo dall'ultimo posto in classifica, al 16º posto finale con 38 punti di cui 32 ottenuti dal suo arrivo, conquistando la salvezza il 24 maggio 2009, con una gara d'anticipo.[12]
La stagione successiva, confermato dal ChievoVerona, chiude la stagione con la 5ª miglior difesa e la salvezza a quota 44 punti.[13]
Il 3 marzo 2010 è il 1º tesserato di Serie A a essere squalificato in una gara di campionato per aver bestemmiato in campo.[14]
Il 26 maggio 2010 il Chievo e Di Carlo si separano.[15]
Il suo primo compito a guida della Sampdoria è quello di superare l'ultimo turno preliminare per accedere alla fase a gironi di Champions League 2010-2011, ma la squadra è sconfitta nel doppio confronto coi tedeschi del Werder Brema. La squadra è eliminata alla fase a gironi d'Europa League e in Coppa Italia. Il 7 marzo 2011, dopo la sconfitta interna col Cesena 2-3, ultimo di una serie di risultati negativi (dovuti in parte anche alla cessione dei due prolifici attaccanti Giampaolo Pazzini e Antonio Cassano) che hanno portato la squadra a 3 punti sopra la zona retrocessione,[18] è esonerato e sostituito da Alberto Cavasin, che tuttavia non riuscirà ad evitare la caduta della compagine ligure in Serie B.[17] Il 7 giugno Di Carlo e il suo staff rescindono il contratto con la Sampdoria consensualmente.[19]
Ritorno al ChievoVerona
Il 9 giugno 2011 è ufficializzato il suo ritorno al ChievoVerona.[20] Termina la stagione 2011-2012 a 49 punti al 10º posto (miglior risultato ottenuto da quando allena in Serie A). Il 16 maggio 2012 rinnova il contratto fino al 30 giugno 2013.[21]
Il 2 ottobre 2012, a seguito della vittoria alla 1ª gara di campionato seguita da 5 sconfitte consecutive e il terz'ultimo posto, è esonerato.[22]
Livorno e Cesena
Il 21 gennaio 2014 diventa allenatore del Livorno.[23] Il 19 aprile 2014, dopo la sconfitta 3-0 col Milan, viene esonerato.[24] In 14 gare ha raccolto 12 punti (3 vittorie, 3 pari, 8 sconfitte) e il penultimo posto in classifica.
L'8 dicembre 2014 è ingaggiato da tecnico del Cesena in Serie A 2014-2015,[25] sostituendo l'esonerato Pierpaolo Bisoli[26].[27]
Il 14 dicembre all'esordio perde 1-4 in casa con la Fiorentina.
Ottiene la 1ª vittoria al Cesena il 25 gennaio 2015, 1ª gara del girone di ritorno, battendo il Parma al Tardini 2-1 portando la squadra al penultimo posto in classifica a 12 punti. Ottiene la 2ª vittoria alla 2ª di ritorno battendo la Lazio 2-1. Dopo la sconfitta 2-0 a Empoli il Cesena pareggia al Manuzzi 2-2 con la Juventus. Il 1º marzo batte in casa l'Udinese 1-0 salendo a 19 punti in classifica in zona retrocessione, a 4 punti sotto la zona salvezza.
Il 6 giugno 2015, a fine stagione, conclusa con la retrocessione in Serie B dei romagnoli, è esonerato.[28]
Spezia e Novara
Il 23 novembre 2015 diventa allenatore dello Spezia che dopo 4 giornate si trova al 14º posto con 17 punti, sostituendo l'esonerato Nenad Bjelica.[29] Riesce a portare gli aquilotti fino ai quarti di Coppa Italia, dopo avere eliminato la Roma agli ottavi,[30] venendo estromesso dall'Alessandria,[31] mentre in campionato arriva 7º e perde la semifinale play-off contro il Trapani.[32] L'anno seguente arriva 8º perdendo poi il preliminare dei play-off contro il Benevento. Il 14 giugno 2017 lascia il club venendo poi sostituito da Fabio Gallo.[33][34]
Il 5 febbraio 2018 subentra sulla panchina del Novara, al posto dell'esonerato Eugenio Corini, siglando un contratto fino al 30 giugno 2019[35]. A fine stagione il Novara retrocederà nonostante la squadra fosse ottava al momento del suo arrivo.
Secondo ritorno al Chievo
Il 13 novembre 2018 torna per la terza volta sulla panchina del Chievo in Serie A dopo le dimissioni di Gian Piero Ventura, che lascia la squadra clivense all'ultimo posto a un punto.[36] Nonostante ciò, il 25 novembre, al debutto stagionale, pareggia 0-0 contro il Napoli, secondo in classifica, allo Stadio San Paolo. Di Carlo riesce a portare a 5 il numero di risultati utili consecutivi (5 pareggi contro, appunto, Napoli,[37] Lazio,[38] Parma,[39] SPAL[40] ed Inter) e, dopo una sconfitta esterna contro la Sampdoria, il 29 dicembre 2018 riesce a trovare la prima vittoria stagionale, nonché prima in stagione del club veronese, contro il Frosinone, per 1-0.[41] Tuttavia non riesce a salvare il club clivense dalla retrocessione in Serie B classificandosi all’ultimo posto.[42]
Vicenza
Il 1º giugno 2019 diventa allenatore del L.R. Vicenza, in Serie C, squadra dove ha militato dal 1990 al 1999 e di cui è stato allenatore della Primavera dal 2001 al 2003.[43] Vince il campionato con 61 punti raccolti in 27 partite disputate, a 6 lunghezze dalla Reggio Audace (la stagione regolare viene sospesa a causa della pandemia di COVID-19); il Vicenza torna così in Serie B dopo 3 anni. Nel campionato cadetto si piazza 12º con 48 punti.
Il 22 settembre 2021, a seguito di un avvio di campionato con 6 sconfitte in altrettante gare, viene esonerato.[44]
Pordenone, SPAL e Ascoli
Il 1º giugno 2022 viene ingaggiato dal Pordenone, militante in Serie C.[45]. Il 6 marzo 2023, con la squadra al 3º posto, a meno 3 punti dalla vetta, viene esonerato.[46] L'11 aprile seguente viene richiamato sulla panchina dei ramarri.[47] Termina la stagione regolare al 2º posto (a pari punti con il Lecco) e ai play-off viene eliminato proprio dal club lombardo nel secondo turno della fase nazionale.
L'11 luglio 2023 viene ingaggiato dalla SPAL, neoretrocessa dalla Serie B, con cui sottoscrive un contratto per una stagione.[48] Il 2 ottobre 2023, avendo messo insieme solo 6 punti in 5 partite e con la squadra al 12º posto, viene sollevato dall'incarico dalla società estense.[49] Viene richiamato il 4 febbraio 2024, con la squadra scivolata al 18º posto in classifica[50] e riesce a invertire il trend terminando la stagione all'11º posto a un punto dai play-off.
Il 3 ottobre 2024 viene ingaggiato dall'Ascoli in Serie C, in sostituzione dell'allenatore ad interimCristian Daniel Ledesma, sottoscrivendo un accordo fino al 30 giugno 2025 con opzione di rinnovo per un ulteriore stagione.[51]
^DI CARLO NUOVO TECNICO DEL CESENA CALCIO, su cesenacalcio.it, 8 dicembre 2014. URL consultato il 9 dicembre 2014 (archiviato dall'url originale il 9 dicembre 2014).
^COMUNICATO UFFICIALE, su cesenacalcio.it, 8 dicembre 2014. URL consultato il 9 dicembre 2014 (archiviato dall'url originale il 5 aprile 2015).