Vinod Kumar (Dilip Kumar) is an upright and honest man, who runs a newspaper named "Mashaal". Vinod exposes the ills in the society with help of his newspaper. Vinod's wife, Sudha (Waheeda Rehman), sees a vagabond named Raja (Anil Kapoor) and tries to instill some values and culture in him. Vinod is sceptical about this, but accepts when Raja tells them of his tragic childhood and comes to regard Sudha as a maternal figure. Finally, Vinod decides to help Raja by sending him to Bangalore to complete his education and become a journalist. During frequent meetings with Vinod and Sudha, Raja befriends Geeta (Rati Agnihotri), an aspiring journalist and an assistant in Vinod's paper, and they fall in love.
During his investigations, Vinod finds that S.K. Vardhan (Amrish Puri), a wealthy and respected man in the society, is behind many malpractices. Vinod starts exposing S.K's illicit business of drug-trafficking and selling hooch. Initially, S.K. tries to buy Vinod's silence by bribing him, but when Vinod decides to stand up to S.K., the latter inflicts misery on Vinod by having him thrown out of his rented house via the landlord. That very night, Vinod's newspaper office is burnt down by S.K.'s men. Helpless, and on the streets, tragedy strikes Vinod and Sudha further when Sudha, who is ailing, dies on the road, leaving Vinod distraught and heartbroken.
A disillusioned Vinod realizes that S.K. will always trump him, since people also support him. Instead of trying to expose S.K., Vinod now decides to follow S.K's footsteps in order to destroy him. Vinod, in association with Kishorilal (Saeed Jaffrey), starts producing illicit hooch and doing other illegal businesses to earn lots of money - the thing, Vinod retrospectively feels, he lacked, and the shortage of which led to the tragedies in his life. In a very short time, Vinod becomes a very rich man. All this time, Raja, who is in Bangalore for his studies, is blissfully unaware of these developments. The only other person exposed to this truth is Geeta, who has grown resentful of Vinod and has started working in another newspaper.
Vinod's business now stands as a threat to Vardhan's empire. Soon, Raja returns after completing his education and meets Vinod and is surprised to see that the latter's lifestyle has changed, but doesn't know the truth.
Raja meets Munna (Gulshan Grover), an old friend, from whom he learns that a new crime lord has entered the fray and has gained a foothold in the hooch and drugs world. Raja decides to expose this criminal, who, unbeknownst to him, is Vinod himself. Vinod is disturbed to learn that Raja is trying to dismantle his empire, but does not stop him. Raja starts working for Dinesh (Alok Nath), another journalist for whom Geeta also works. A chance discussion between Raja, Dinesh and Geeta leads to the revelation that Vinod is, indeed, the new drug boss. Raja is flummoxed upon learning this, and goes to meet Vinod to confront him about this. Vinod accepts the truth, and tells him what happened. After an emotional upheaval and deep pondering, Raja decides that he will continue on the righteous path Vinod taught him, even if this means exposing the very person, who treated him as his own son, as a criminal. Vinod feels humbled when Raja tells him that he still views Vinod as his mentor, upon which Vinod gives him his blessings to continue his chosen work.
Meanwhile, Vinod and S.K's enmity reaches a head when Raja starts writing about both. Finally, S.K kidnaps Raja and threatens him. Vinod enters and saves Raja, before fighting with S.K. Vinod kills S.K by throwing him in printing press wheels. Keshav, a henchman of S.K, tries to shoot Raja, but Vinod comes in between and gets fatally shot. Keshav is arrested, while Vinod dies in Raja's arms, happy and finally content.