The story follows a team of fictional secret agents called Baby; which is a temporary task force headed by Feroz Khan (Danny Denzongpa). Post the 26/11 attacks in Mumbai a team of special officers is formed and they are assigned mission 'BABY'. The job is to find and eliminate terrorists who are planning attacks in various cities in India.
While attempting to rescue a fellow Indian security agent in Turkey, Ajay Singh Rajput (Akshay Kumar) captures a traitor Jamal, who formerly worked under Ajay. Ajay captures Jamal and threatens to kill his family unless he gives them the information about their terror attack plans on India. He discovers a terrorist plot to cause a bomb blast in a Delhi mall which he and Jai (Rana Daggubati) are able to prevent. In the process they learn that this was only the first, of a series of massive attacks that had been planned. Terrorist mastermind Maulana (Rasheed Naz), is causing trouble near the Pakistan-India border. He plots a daring escape plan for Bilal (Kay Kay Menon). Bilal manages to escape from prison. A team of officers is dispatched to interrogate Taufiq who is an ISI agent posing as a local leader. Ajay manages to get information on their local contacts after torturing him. They go to their hideout, but things go haywire when all of the squad members on the mission except Ajay are killed in an explosion. To collect further information from a terrorist logistics planner in Nepal, Ajay and officer Priya (Tapsee Pannu) travel to Nepal pretending to be husband and wife. Their plan to capture the terrorist Wasim Khan (Sushant Singh) goes wrong when Wasim finds out that Priya is in fact an undercover officer. Priya manages to hold Wasim and Ajay arrives to find that Priya has knocked him unconscious.
As per the information given by Wasim, Feroz sends Ajay, Jai and Shukla (Anupam Kher) to meet their deep asset Ashfaq (Mikaal Zulfiqar) in Saudi Al-Dera where Bilal is holding meetings to discuss the funding and execution of their plans. Ajay and Jai crack into Bilal's room with the help of Shukla and manage to kill Bilal. As they are about to return, they find that Maulana is also at the suite. Jai knocks him out and they decide to bring Maulana back to India, under the pretext that he is a relative who needs to visit India for an urgent liver transplant. They manage to get a visa from the local authorities for Maulana (being shown as Ashfaq's ill uncle) with Ashfaq's help. Soon after, the hotel security discover the corpse of Bilal. The Arab police authorities put the police chief Hani Mohammad (Hasan Noman) on charge of investigating the crime. He attempts to track down the murderers quickly and eventually succeeds. However, he also learns that the murderers are none other than Indian military agents who are smuggling the infamous leader, Maulana under the pretext of being Ashfaq's uncle. As soon as he learns this, he smiles and lets them escape without any hindrance. For successfully bringing in Maulana, Baby is given permanent status.
Misha (Yami Gautam) and her son Robin become the unfortunate victims of a bank robbery getaway during a shopping trip. Liak (Nawazuddin Siddiqui) and his friend Harman (Vinay Pathak) are on the run after robbing a bank and use Misha's car to flee. Robin falls out of the moving vehicle during the struggle, while Misha is shot by Liak. Both mother and son later succumb to their injuries in hospital. Harman jumps out of the car to protect the money while Liak is arrested.
Raghu (Varun Dhawan), shattered from the loss of both his wife and his son, immerses himself in seeking revenge from both culprits. Liak is sentenced to 20 years in prison, but refuses to reveal the identity of his partner in crime. Raghu tries his best to get the name of Liak's partner who he believes killed his wife and child, but fails. He hires a detective and learns about Jhimli (Huma Qureshi), a prostitiute who is Liak's girlfriend, and visits her to enquire about the missing partner. However, he gets angry at Jhimli's trust in Liak and ends up torturing and raping her. After Liak's sentence, Raghu exiles himself to a reclusive life at a chance station where he gets down from a train and unsuccessfully attempts to commit suicide - Badlapur.
15 years later, a cancer-ridden and terminally ill Liak is paroled from prison on compassionate grounds. Unknown to Liak, Raghu has facilitated the release by providing a letter of pardon for Liak to the court, in lieu of knowing the elusive partner's name from Liak's mother. Bent on vengeance, Raghu starts for Pune and finds Harman. Harman now runs a well-established restaurant in Pune and is, for all intents and purposes, a respected member of the society.
After his parole, Liak is kept under watch by police as they believe Liak will lead them to the unknown partner. Liak nevertheless manages to contact Harman, and arranges to meet Harman and take his share of the money. However, Raghu has already met and interrogated Harman along with Harman's wife Kanchan (Radhika Apte). Harman pleads with Raghu not to reveal his name to the cops. He tells Raghu that while he was involved in the robbery, it was Liak and not him who shot and killed his son and wife. Raghu, however, does not seem convinced. Harman promises to give Raghu Liak's share of money. Raghu takes the money but kills both Harman and his wife. Raghu meets Shobha (Divya Dutta), the NGO worker who was instrumental in arranging Liak's parole, to create an alibi. He pretends to be in love with Shobha and sleeps with her. Later he returns and buries the bodies of Harman and Kanchan on a lonely hilltop.
Police now turn suspicious and start investigating Harman, who seems to have disappeared with his wife.
A despondent Liak gets to know from his mother that Raghu came to know Harman's name from her. Liak breaks into Raghu's house in search of the money and gets into a scuffle with Raghu. But Raghu soon overpowers Liak and beats him senseless. When Liak regains consciousness, Raghu tells him in detail how he killed Harman and his wife and disposed of their bodies.Liak tells Raghu that it was him, and not Harman who killed Raghu's wife and child, but he did it in a moment of panic, unlike Raghu who, Liak points out, planned his murders with a cool mind, and without any certain knowledge of guilt. Liak tells Raghu that there is no difference between them, and that Raghu has become mad and should go for treatment.
Liak meets his former girlfriend Jhimli for one last time. Jhimli, who is now a keep of a local businessman, breaks down knowing that Liak is now near death.
The police inspector investigating the case now has circumstantial evidence that Raghu murdered Harman and his wife. He meets Raghu and offers a deal, the money which Raghu has got from Harman for removing the evidence.
Liak returns home in a distraught state knowing he has caused misery all around and possibly his friend's death too. He finds his mother does not have a single good word to tell about his father and realizes that soon he will also be spoken of in the same manner by people - a complete no-gooder without a single good deed to speak of.
Raghu refuses the policeman and prepares for a final showdown, Liak walks into the police station and confesses to killing Harman and his wife and also reveals where to find the dead bodies. Liak takes Raghu's blame, giving Raghu a second chance to live his life, and also doing one good thing in his own life before dying.
After seven months, Liak succumbs to cancer in jail. Jhimli meets Raghu and tells him that he has a second chance thanks to Liak, that very few get such chances - Liak never did - and that he should not waste it. She also asks Raghu that, now that his revenge is complete and all the guilty are dead, what good it did to him. Raghu is silent as Jhimli leaves him standing in the rain.