Ha esordito in Serie A a Roma contro l' il 20 marzo 1955, non essendo disponibile il titolare Alberto Eliani; la partita si concluse 3-0 per la Roma. A partire dalla stagione 1955-1956 divenne titolare della squadra e lo restò sino a fine carriera, tranne una parentesi nel 1957-1958 e nel 1958-1959 quando gli venne preferito Giulio Corsini come terzino sinistro. Rientrato in formazione titolare nella primavera 1959 con il ruolo di difensore centrale, si guadagnò la fascia di capitano nella stagione 1960-1961. Giocò nella Roma fino al 1969, collezionando 386 presenze totali, di cui 299 da capitano, senza mai subire nessun provvedimento disciplinare (fu ammonito solamente nell'ultima partita disputata). Nella stagione 1968-1969, con l'arrivo di Helenio Herrera sulla panchina romanista, venne messo in disparte dopo le prime 8 giornate, e in seguito a dissidi con l'allenatore argentino lasciò la Roma a fine stagione per disputare la sua ultima annata da calciatore nella Tevere Roma, formazione di Serie D.