DCP (Deputy Commissioner of Police) Shiv Kumar (Sunil Dutt), returns home to his wife, Sheetal (Rakhee Gulzar) and their young daughter and announces that he has been transferred to Bombay. He has two brothers, Vijay (Amitabh Bachchan) and Ravi (Shashi Kapoor), who live in Bombay. They are intelligent, capable young men, but spend their time loafing about the city and swindling unsuspecting people. A mysterious man (Shatrughan Sinha) tries to assassinate Shiv Kumar twice in the city. Shiv survives both the times.
After being swindled by Chacha (Johnny Walker) and Renu (Bindiya Goswami), the twosome decide to join forces with them. They are quickly joined by a glamorous thief Sunita (Parveen Babi). One of their tricks eventually backfires and lands Vijay and Ravi in jail. Shiv bails them out and reads them the riot act at home.
After the two attempts on his life, Vijay and Ravi advise him to find a different line of work, arguing that his profession is unpredictable, dangerous and unsuitable for a family man. Shiv stands firm, citing his undying patriotic commitment to his corps and his country.
Shakaal (Kulbhushan Kharbanda) is an international crime lord operating from a remote island outside India. Shakaal is a sadistic villain who rejoices in pain of his enemies and traitors. Shiv gets progressively closer to the root of the crimes in the city. Shakaal has Shiv brought before him. He compliments Shiv on his wits and valour, and offers him to come to the his side. True to his form, Shiv firmly refuses the offer.
Shakaal tries to kill him, but Shiv breaks loose and tries to escape from the island. Shakaal unleashes wild dogs upon Shiv and eventually shoots him dead on the beach from a helicopter. As Vijay, Ravi and Sheetal lament their tragic loss, the mysterious man who tried to kill Shiv shows up. Sheetal angrily identifies him. The man introduces himself as Rakesh, a marksman and former circus performer who used to shoot targets blindfolded. He was recruited by Shakaal to assassinate Shiv, by holding Rakesh's wife hostage.
Rakesh confesses that he deliberately missed Shiv on the two previous instances, hoping it would buy him time to rescue his wife. On realizing this, an angry Shakaal killed his wife. Rakesh sought out Ravi and Vijay so they could work together to bring down Shakaal.
The trio seek the aid of a homeless cripple, Abdul (Mazhar Khan) and manage to find and destroy Shakaal's contraband warehouse in the city. Finding that Abdul was providing Ravi and Vijay with information, Shakaal has his men kill him. Enraged with the destruction of his warehouses, Shakaal kidnaps Sheetal and has her brought to his island.
Vijay, Ravi and Rakesh fume, knowing that Sheetal will almost certainly be killed and that they have no clue about the location of Shakaal's island. At this point, Jagmohan (Mac Mohan), another of Shakaal's aides who has been mercilessly crippled by him, offers his help to the group to gain entry to Shakaal's hideout.
Posing as a musical troupe, Vijay and Ravi (with Renu, Chacha and Sunita) enter the island and perform for Shakaal. Shakaal, however, reveals that Jagmohan was sent by him to trap them. Jagmohan's fracture was a lie. Their cover is blown and they are captured.
An elaborate sequence ensues as the three men escape. The trio and the widow avoid the booby traps and henchmen, ultimately capture Shakaal and finally end his ignominious existence. Shakaal, with his dying breath, sets his island hideout to blow up but the heroes escape via helicopter to safety.