Puc je rokometno kariero začel v Šoštanju, nastopal pa je tudi za Borac iz Banja Luke, Zagreb, Celje Pivovarno Laško in Prule 67. Bil je edini rokometaš na svetu, ki je na olimpijskih igrah nastopal za tri različne reprezentance. Leta 1988 v Seulu je osvojil bronasto kolajno z Jugoslavijo, leta 1996 je bil s Hrvaško v Atlanti zlat, leta 2000 pa je bil s Slovenijo v Sydneyju osmi.
Na klubskem področju je z Zagrebom dvakrat zmagal v evropski ligi prvakov.
Za slovensko izbrano vrsto je zbral 34 nastopov in dosegel 120 golov.