Ala estrosa dal dribbling secco ma con poco senso del gol,[1] soprannominato Brasileiro, fece il suo debutto in serie B con il Verona il 13 gennaio 1963 a Como vincendo 1-0. Nella squadra scaligera militò dal 1962 al 1967, salvo una parentesi di una stagione nella Pistoiese, per fare esperienza, dove segnò sette gol[2]. Nel 1967 il Verona lo cedette al Milan per 150 milioni più la comproprietà di Maddè. Rimase in rossonero per sei campionati, intervallati da un'esperienza nel Varese nel 1968-1969 e di un solo anno in serie B nel Monza, senza trovare molto spazio ma con la soddisfazione di far parte dello storico Milan guidato da Nereo Rocco che si aggiudicò una Coppa dei Campioni, una Coppa Intercontinentale, una Coppa delle Coppe e due Coppe Italia. Viene ricordato per il gol-non gol nella partita Roma-Milan del 5 maggio 1968, quando l'arbitro trevigiano Possagno assegnò il gol del pareggio rossonero su una sua palla finita sull'esterno della rete[2]. Con la maglia rossonera disputò complessivamente 57 partite segnando 6 gol. Dopo l'ultimo anno a Milano, nel 1973-1974 si trasferì a Foggia dove concluse la sua carriera nel 1975-1976.