The race departured Milan at 10:10 a.m. under a heavy rain. Defending champion Fausto Coppi (Bianchi) controlled the early pace in the peloton.
The first serious breakaway attempt came when Vito Ortelli (Atala), Guido De Santi (Wilier), and Emilio Croci-Torti (Olmo), passed through Varese (52 km / 222 km), with a 1'00” advantage over the chasing group.
The race continued aggressively on the Binago climb (85 km / 222 km), when a nine-rider escape including Adolfo Leoni (Bianchi), Lucien Teisseire (Team Ray), Fermo Camellini (Team Ray), Giordano Cottur (Wilier), Guido De Santi (Wilier), Egidio Feruglio (Wilier), Giulio Bresci (Welter), Victorio Seghezzi (Lygie), and Luciano Maggini (Benotto) opened a solid gap.
The lead breakaway came back together in Erba (121 km / 222 km). Immediately Fiorenzo Magni (Viscontea) and his teammate Olimpio Bizzi (Viscontea) initiated another attack.
At thecontrol station in Asso (134 km / 222 km), their advantage grew to one minute, Coppi became concerned. He attacked in pursuit of the leaders.
In Valbrona (140 km / 222 km), Bizzi began to suffer and Magni moved into the lead. At the summit Coppi reconnected with Magni.
The rain abated approaching the Madonna del Ghisallo climb and forced the pace to quicken. Magni began to struggle and faded from the breakaway. Coppi continued alone.
Riding over the summit of the Ghisallo (152 km / 222 km), Coppi maintained a 2'15" lead on Bartali, 2'45 on De Zan, 3'15" on Magni.