Nipote del ciclista Battista Astrua, corse per la Benotto, la Follis, la Taurea, l'Atala e l'Allegro, distinguendosi soprattutto nelle corse a tappe. Le principali vittorie da professionista furono tre tappe al Giro d'Italia tra il 1950 ed il 1955, il Trofeo Baracchi nel 1952, il Giro di Romagna nel 1953 ed una tappa alla Vuelta a España nel 1956. Fu terzo al Tour de France nel 1953 ed al Tour de Suisse nel 1954. Ciclista tra i migliori della sua generazione, nel Giro d'Italia 1952, miglior momento della sua carriera, indossò la maglia rosa fino all'ottava tappa, quando la perse a causa di una caduta.
Dopo il ritiro visse a lungo a Torino, gestendo un negozio di articoli sportivi nei pressi dello Stadio Olimpico.[1] Morì il 29 luglio 2010 all'ospedale di Biella per i postumi di un incidente stradale in cui era rimasto coinvolto un mese prima.[1]