Né dans une famille bourgeoise, il fait des études de sciences politiques dans sa ville natale. Il travaille dans une entreprise de surgelés, consacrant son temps libre au jazz comme clarinettiste amateur dans un groupe de Bologne, la Doctor Dixie Jazz Band avec Lucio Dalla.
Il fait ses débuts au cinéma en 1968 avec Balsamus, l'homme de Satan, un long-métrage mélangeant gothique et grotesque, ce qui est original pour l'époque en Italie. L'année suivante c'est Thomas... gli indemoniati avec
Mariangela Melato dans ses débuts, film où Pupi confirme sa veine d'originalité : le film ne sort même pas en Italie, bien qu'il reçoive la récompense (prix Stefen) du meilleur acteur pour Bob Tonelli au Festival de Locarno; c'est l'occasion d'une interruption de la carrière de Pupi pour 5 ans.
Il revient en 1974 avec le scénario de Il bacio réalisé par Mario Lanfranchi et la réalisation de La mazurka del barone, della santa e del fico fiorone avec
Ugo Tognazzi et
Paolo Villaggio.
Il contribue au scénario de Salo ou les 120 journées de Sodome avec
Sergio Citti (1975) pour
Pier Paolo Pasolini. Le succès arrive enfin dans le film d'horreur La Maison aux fenêtres qui rient (1976) et son autobiographie télévisée Jazz Band (1978).
Ses productions ont ensuite plus ou moins de succès, jusqu'aux années 1990, où il est largement reconnu - au point d'être membre du jury des longs-métrages au festival de Cannes 1994- avec Fratelli e sorelle (1991), Magnificat (1993), Dichiarazione d'amore (1994) et Le Témoin du marié (1997). Il est primé pour Un coeur ailleurs (2003).