Set in 1960s Bombay, the film tells the story of Balraj (Ranbir Kapoor), a street fighter/boxer who is in love with the jazz singer Rosie. Seeing Rosie (Anushka Sharma) with wealthy men further sparks his dream of becoming a “big-shot”, believing that if he manages to become rich, he might win Rosie’s heart. Balraj and his friend Chimman (Satyadeep Misra) then catch the eye of Kaizad Khambatta (Karan Johar), a wealthy businessman who is impressed by Balraj and offers him to manage his club “Bombay Velvet”, which Khambatta uses to further his illegal tasks and activities. He also nicknames Balraj “Johnny”, which then becomes his identification. As well as this, Johnny and Chimman fulfill minor tasks for Khambatta, including capturing a dirty photograph of a minister who Khambatta wants to blackmail. This news reaches Jimmy Mistri, a media reporter, who also happens to be the same wealthy man Johnny had previously seen with Rosie.
Remembering that Johnny had a crush on Rosie, Mistri takes advantage of this and sends Rosie to Johnny’s club to get her hands on the photograph of the minister. However, Rosie and Johnny eventually fall in love, until Mistri threatens to reveal Rosie’s true identity to Johnny. Therefore, Rosie begins to supply information about Johnny & Khambatta’s activities to Mistri. After a photograph of a secret meeting between Bombay’s big-shots is leaked, Khambatta guesses that it was Rosie supplying the information and orders her to be killed. Johnny hears of this and forms an enmity with Khambatta, the man who brought him into the crime world.
Johnny fakes Rosie’s death and makes her act as if she is her long dead twin sister Rita. But soon Khambatta realises the truth, kidnaps Rosie and tries to kill Johny and they get into a standoff at Bombay Velvet. Khambatta shoots Rosie to provoke Johnny. Johnny angry at this stabs Khambatta and is himself shot dead while trying to carry Rosie to the hospital, outside the club. It is revealed at the start of the end credits that Rosie survives her gunshot.