Gareggiava per la Società Ginnastica Pro Patria et Libertate di Busto Arsizio, privilegiando le gare sui 5000 e 10000 metri piani, i 20 km e la corsa campestre.

Biografia Di professione operaio presso una delle tante industrie tessili di Busto Arsizio, fu chiamato in nazionale per tre olimpiadi (Stoccolma 1912, Anversa 1920 e Parigi 1924).

1910-1914: i primi, grandi successi Esordì nel 1910 partecipando a una delle prime edizioni della corsa su strada denominata Doppio Giro di Busto Arsizio. Nello stesso anno vinse il campionato italiano "giovanetti" e, successivamente, il Giro di Gaggiano.

Fu il 1912 l'anno in cui Carlo Speroni, ancora giovanissimo, si fece conoscere a livello internazionale: partecipò ai campionati italiani della FISA che si tennero allo Stadio Marcantonio Bentegodi di Verona e si classificò secondo nei 10 000 metri, con il tempo di 33'27"2/5, alle spalle di Alfonso Orlando. La gara non faceva ancora parte del programma ufficiale della competizione, ma veniva utilizzata come prova di selezione per le Olimpiadi di Stoccolma. Il giorno successivo, Speroni divenne campione italiano assoluto nei 20 km corsi su pista, tagliando il filo di lana in 1h11'29"2/5. Fu così convocato ai Giochi olimpici di Stoccolma.

Il 16 giugno 1912 batté, a Milano, il record italiano sui 25 km su pista grazie ad una prestazione di 1h29'36"1/5, primato precedentemente detenuto da Giacinto Volpati (1h33', 20 settembre 1903) e riscritto solo il 29 giugno 1938 da Umberto De Florentis (1h27'53"4).

Il 14 luglio, un giorno dopo il suo diciassettesimo compleanno, partecipò alla maratona olimpica di Stoccolma, che si corse a temperature insolite per quelle latitudini. I 30 °C registrati provocarono non pochi ritiri di atleti non preparati a quelle condizioni climatiche; addirittura il portoghese Francisco Làzaro stramazzò al suolo poco oltre il trentesimo chilometro di gara e fu ricoverato, dopo mezz'ora, presso l'ospedale della capitale svedese, dove gli fu diagnosticata una grave insolazione che lo portò alla morte il giorno successivo, all'alba. In queste condizioni anche Carlo Speroni dovette optare per il ritiro dopo il trentacinquesimo chilometro, che raggiunse in sesta posizione.

Il 12 maggio 1913 arrivò secondo alla Maratona di Milano con 2h44'57"3/5, battuto solo dal francese Louis Pauteux (2h36'57"3/5) e seguito dal tedesco Otto Wagner e dall'italiano Ernesto Ambrosini. Il 20 settembre dello stesso anno si confermò campione italiano sui 20 km su pista a Milano correndo i 53 giri della pista (che misurava 375 metri) in 1h07'57"2.

Il 18 maggio dello stesso anno corse le 5 miglia a Marsiglia, gara durante la quale percorse i 5000 metri in 15'31" (tempo mai ratificato dalla FISA probabilmente perché ottenuto su una distanza superiore. Speroni concluse la gara in 25'00"6.

Nel 1914 Speroni confermò le sue capacità: il 26 settembre si laureò campione italiano assoluto sui 10 000 metri con il tempo di 32'34"3/5, nuovo record italiano ufficializzato dalla FISA (nonostante in precedenza altri atleti ottennero prestazioni migliori, mai ratificate): lasciò indietro Giuseppe Bausola e Giuseppe Masarotti, che ottennero, rispettivamente, i tempi di 33'33"1/5 e 34'23" (circa un minuto e due minuti di distacco da Speroni).

Il giorno successivo prese parte alla gara dei 5000 metri, ma, consapevole delle ottime condizioni di Primo Brega, preferì ritirarsi per risparmiare le sue energie per la gara sui 20 km, suo cavallo di battaglia. Si riconfermò (per la terza volta) campione italiano su questa distanza concludendo la gara in 1h06'36" (nuovo record italiano e mondiale, seppur mai ratificato dalla IAAFAll'epoca il regolamento internazionale prevedeva, per la ratifica di un record del mondo, la presenza di tre cronometristi: alla gara di Milano ne erano presenti solo due.). Durante questa gara Speroni ottenne il record italiano nell'ora di corsa, percorrendo una distanza pari a 18 060,50 m, circa 250 m in più rispetto al precedente record di Pericle Pagliani; per vedere un nuovo record italiano su questa, oggi insolita, specialità si dovettero aspettare quasi vent'anni: il 6 giugno 1933 Spartaco Morelli corse 18 157,40 m in un'ora.

Il 29 novembre 1914 partecipò alla Maratona di Legnano valida per il campionato italiano di maratona. L'atleta bustocco rimase al fianco di Florestano Benedetti fino al ventesimo chilometro, distanziandolo di 100 m durante chilometro successivo; Speroni fu costretto a due soste indesiderate, ma sembrava comunque in grado di vincere il titolo italiano. Al trentesimo chilometro conservava ancora 45" di vantaggio rispetto Umberto Blasi che, al trentaseiesimo chilometro, lo riprese facendo cedere Speroni, che si ritirò. Blasi concluse la gara in 2h38'00"1/5, miglior prestazione italiana di 48" più veloce rispetto a quella ottenuta da Dorando Pietri a Buenos Aires il 24 maggio 1910.

1915-1919: gli anni della prima guerra mondiale

Nel 1915, con l'intervento dell'Italia nel primo conflitto mondiale, lo sport italiano subì un importante diradamento della frequenza delle competizioni (in quest'anno, infatti, non si svolsero i campionati italiani di atletica leggera, così come nel 1916, 1917 e 1918).

Il 28 febbraio Carlo Speroni vinse una gara di cross-country al Lido d'Albaro di Genova, organizzata dalla F.I.S.A. e dalla Gazzetta dello Sport. Il percorso di 8 km fu compiuto dal campione nazionale, che gareggiava per l'U. S. Bustese, in 24' 50''.

Il 18 aprile Speroni corse, a Busto Arsizio, le 5 miglia in 26'08"0. Questa fu una delle poche gare alle quali l'atleta partecipò in questo periodo, fino ad arrivare al 24 ottobre quando, a Milano, fece parlare di sé aggiudicandosi in 24'30" la corsa su strada di 7,5 km organizzata dalla società Agamennone di Milano, battendo Amilcare Brunelli e Antenore Negri.

Non fu chiamato alle armi per malattia, così il 23 gennaio 1916 poté primeggiare nella Coppa d'Inverno su strada (8,8 km) davanti ad Antenore Negri, Angelo Malvicini, Ettore Comi e Costante Lussana, quest'ultimo convalescente dalle ferite riportate in guerra.

Nel 1916 ottenne varie vittorie in diverse manifestazioni, la più importante delle quali fu quella del Criterium Nazionale FISA, che corrispondeva a un titolo tricolore non ufficiale, in quanto, come già detto, i campionati italiani erano stati sospesi. Partecipò alla gara dei 5000 metri vincendo in 16'18"3/5. Anche nella Monza-Milano ottenne il primo posto fermando il cronometro a 1h09'54"4/5 sui 18 km.

Il 23 gennaio 1916 vinse a Pavia la Coppa d'Inverno (8,8 km in 28'00"); Il 2 aprile vinse la corsa campestre organizzata a Milano dalla FISA, correndo gli 8,7  della gara in 28'13"6. Il 28 maggio, sempre a Milano, partecipò al meeting nazionale dell'Unione Sportiva Milanese e Pro Patria Milano, vincendo sia sugli 800 metri (2'07"8) che sui 12 km (39'30").

Il 4 giugno 1916 vinse il Giro dei Quattro Ponti a Torino, concludendo in 28'10", mentre una settimana dopo si impose alla Coppa Excelsior, organizzata a Monza. Il 9 luglio corse gli 8 km dell'ottava edizione della Coppa Malvezzi di Milano in 24'23", anche in questo caso conquistando la medaglia d'oro.

Questi successi furono, probabilmente, conseguenza del fatto che molti mezzofondisti italiani erano stati arruolati. Tra questi Carlo Martinenghi, impegnato quattro anni al fronte da artigliere. Molti altri caddero al fronte (ricordiamo Michele Ambrosini, Egidio Bertazzoni, Italo Damiani, Luigi Fadori, Mario Givertini, Pietro Lamberti, Italo Mazzarocchi, Alfredo Zanaboni, Vincenzo Zappalà) o dovettero rinunciare all'attività agonistica in seguito ai danni subiti in combattimento (Ernesto Ambrosini fu gravemente colpito nel 1915; Angelo Grosselli sopravvisse allo scoppio di una bomba a mano in Carnia; Costante Lussana riportò gravi ferite al Mrzli).

Da queste tristi condizioni ebbe vantaggio anche Armando Pagliani che in diverse gare diede del filo da torcere a Speroni. Il 15 aprile 1917 l'atleta bustocco non partecipò alla consueta gara podistica della Post Resurgo Libertas, che vide Pagliani vittorioso. I motivi di questa assenza furono il matrimonio di Speroni con Maria Antonini (dalla quale ebbe poi due figli, Giancarlo e Renata) e la successiva luna di miele.

Il 28 settembre 1917 Armando Pagliani gli soffiò il record italiano della mezz'ora (9487 m), stabilendo anche quello sui 3000 metri (9'02"0) e sui 5000 metri (15'24"3/5). Successivamente Speroni dovette subire altre due sconfitte da parte di Pagliani.

Carlo Speroni: atleta soldato

Nel 1917 giunse la chiamata alle armi anche per Speroni che vestì la divisa del 73º Fanteria di Lecco. Non fu mai impiegato nelle trincee, ma partecipò attivamente al servizio di propaganda. Nel biennio 1918-1919 gareggiò quasi esclusivamente a livello militare.

Il 20 marzo 1918 La Gazzetta dello Sport, previa autorizzazione del Comando Supremo, diede vita allOpera Nazione per l'Addestramento Sportivo del Soldato che aveva come scopo quello di "agevolare lo svolgersi di gare sportive fra i militari, sia al fronte che nei depositi, sia combattenti che reclute; offrire attrezzi ed oggetti per le gare esclusivamente ai reparti combattenti; dotare di premi in denaro o medaglie siffatte manifestazioni". Numerosissime furono le gare di corsa campestre organizzate in questi anni.

Il 17 febbraio (un mese prima della fondazione dell'ONASS) il Parco di Monza ospitò una delle prime gare di corsa campestre riservate agli organi militari e a vincere fu proprio il soldato Carlo Speroni in 24'15", lasciando indietro il tenente Mario Candelori. Solo una settimana dopo, nuovamente a Monza, si corse un altro cross di 7 km che vide vincitore Ernesto Ambrosini (26'31") e Carlo Speroni secondo di 100 m.

Il 28 aprile nella campestre della Divisione Brescia che si tenne presso l'ippodromo Santa Chiara di Bergamo, fu nuovamente Speroni a trionfare, battendo il mitragliere Angelo Malvicini e il bersagliere Lazzaro Parisio.

Speroni partecipò anche a diverse competizioni militari su strada e su pista. Tra queste, una manifestazione interalleata di propaganda bandita da Il Giornale d'Italia si tenne a Roma, in Piazza di Siena, il 24 marzo 1918. L'atleta bustocco vinse il cosiddetto "Gran Premio Reale" nei 5000 metri in 16'04"2. Il 7 aprile prese parte al Giro di Torino classificandosi terzo alle spalle di Valerio Arri (bronzo olimpico ad Anversa 1920 nella maratona) e Carlo Balzarini.

Il 20 luglio 1918 Speroni primeggiò tra i 42 partenti nella maratonina sulle 15 miglia al meeting internazionale organizzato a Stamford Bridge, Londra, dal Molinari Athletic Club. Il suo tempo fu 1h23'41"1/5.

Seguirono numerose, fino al dicembre 1918, gare e meeting interalleati che videro la vittoria di Speroni, ma anche qualche delusione, come il ritiro, duramente criticato da La Gazzetta dello Sport, dalla Traversata di Busto Arsizio che si svolse il 3 novembre 1918.

Il 26 gennaio 1919 a Roma corse 8860 m in mezz'ora e il 13 aprile si cimentò nella specialità dei 1200 metri siepi (i 3000 siepi verranno introdotti solo nel 1923); la gara si corse a Genova e Speroni concluse con un discreto 3'57"0.

A circa sette mesi dalla cessazione delle ostilità del conflitto mondiale con il Trattato di Versailles, Parigi ospitò i Giochi Interalleati, una sorta di Olimpiade militare circoscritta agli stati e ai territori vincitori del conflitto voluta dal capo del corpo di spedizione americano, generale John Joseph Pershing: vi presero parte 1415 atleti-soldati di 19 paesi. Il 4 luglio 1919 Speroni gareggiò nella maratonina sulla distanza di 16 km, ma si fermò prima del traguardo.

1920-1923: le ritrovate soddisfazioni Sul finire del 1919 Speroni tornò a gareggiare da atleta civile, ma decise di non partecipare ai campionati italiani che si tennero a Milano. Prese parte, invece, ad un'altra gara che si teneva in concomitanza con i campionati: a Verona eguagliò il record italiano sui 5000 metri, pari a 15'24"3/5, detenuto da Pericle Pagliani.