A scrupulously honest cop DCP Ashwini Kumar (Dilip Kumar) has a very difficult decision to make when his son Vijay Kumar as a child is kidnapped by gangster JK Verma (Amrish Puri). JK demands the release of one his accomplices who was arrested and jailed by Ashwini Kumar or he will kill Vijay.
Ashwini refuses to let a criminal be released and so Vijay decides to escape from the kidnappers himself and is eventually saved. Vijay grows up as (Amitabh Bachchan) never forgetting that his father refused to break the rules of his police work even if it meant saving his life. Vijay leaves home and starts living with Roma Devi (Smita Patil), a woman who has a spare room to rent. Eventually he falls in love with her and they get married secretly.
He starts working for mobster K.D Narang (Kulbhushan Kharbanda), who used to be one of JK Verma's accomplices and had let Vijay escape from JK Verma's clutches as a child. Vijay sees this a favour to him for what he did so he decides to do all of Narang's illegal activities for him. Eventually the rivalry between JK and Narang forces Vijay to act as bodyguard for Narang and go on the run with him.