Regista, attore. Impiegato in un'azienda di spedizioni nella sua città natale, entra a far parte come collaboratore della Cooperativa Produttori Cinematografici che inizia la sua attività nel 1951 con il film d'esordio di Carlo Lizzani, "Achtung! Banditi!". Partecipa al film ricoprendo un ruolo di secondo piano e si occupa anche dell'organizzazione. Negli anni successivi la sua passione per il mondo del cinema lo porta a continuare la sua carriera d'attore. Recita ancora per Lizzani, ma anche per Luciano Emmer e Valerio Zurlini. Alla fine degli anni Cinquanta è l'aiuto-regista di Gillo Pontecorvo in "La grande strada azzurra" (1957), di Lizzani in "Esterina" (1959) e collabora con Elio Petri per "L'assassino", che esce nel 1961. Tra il 1958 e il 1959 esordisce alla regia con alcuni cortometraggi e nel 1961 realizza il suo primo lungometraggio, "Tiro al piccione", opera coraggiosa che affronta un difficile momento storico attraverso l'ottica di un ragazzo che aderisce alla Repubblica di Salò. Nel 1964 "Una bella grinta" vince il Premio Speciale della giuria al Festival di Berlino e nel 1966 fa il regista della seconda unità nel pluripremiato "La battaglia di Algeri" di Gillo Pontecorvo. Nel 1971 il suo "Sacco e Vanzetti" si aggiudica la Palma d'Oro a Cannes. Grande appassionato di musica lirica, si è dedicato anche alla regia di opere liriche. Nel 1982 firma lo sceneggiato per la televisione "Marco Polo", girato in Cina, che riceve numerosi riconoscimenti e ottiene grande successo anche all'estero. È sposato con Vera Pescarolo, sorella del produttore Leo, sua assidua collaboratrice. È stato direttore di importanti rassegne e di premi cinematografici ed è stato Presidente di Rai Cinema.