Established actor and film controversies (2014–2019)
Kapoor next reunited with director Vishal Bhardwaj to film Haider (2014), an adaptation of William Shakespeare's tragedy Hamlet set during the Kashmir conflict of 1995, in which he played the titular role opposite Tabu and Shraddha Kapoor. Kapoor described the film as the "toughest" of his career, and waived his fees to star in it. For the role, he shaved his head and learned to speak in a Kashmiri dialect. Haider garnered critical acclaim, though was controversial among Indian nationalists for its portrayal of the conflict in Kashmir. Sanjukta Sharma of Mint found the film to be an "immensely effective reimagination of Shakespeare" and particularly praised Kapoor for playing his part with "impressive zest and inventiveness". Writing for Hindustan Times, critic Anupama Chopra wrote that Kapoor initially seemed uncomfortable in the complex central role, but added that he "slowly [...] comes to inhabit Haider, veering from rage to jealousy to madness in a heartbeat." Kapoor won several awards for the role, including the Screen Award, Producers Guild Film Award and Filmfare Award for Best Actor. Haider emerged a box office success.
After completing the duties of a talent judge on the dance reality show Jhalak Dikhhla Jaa Reloaded, Kapoor appeared opposite Alia Bhatt in Vikas Bahl's Shaandaar (2015). A critical and commercial failure, it is about insomniacs who fall in love during a destination wedding. Kapoor next took on the role of a drug abusing rock star in Udta Punjab (2016), a crime drama from the director Abhishek Chaubey that documents the substance abuse endemic in the Indian state of Punjab. Kapoor, a teetotaler, found it challenging to play an addict. He based the role on several pop stars, and was interested in bringing out his character's vulnerability despite his obnoxious actions. Udta Punjab generated controversy when the Central Board of Film Certification (CBFC) demanded extensive censorship before its theatrical release, citing that the portrayal of Punjab in it was negative. The demands sparked a debate on freedom of expression in India. After the producers filed a lawsuit against the board, the Bombay High Court cleared it for exhibition with a single scene cut, in which Kapoor's character is shown urinating on people. Sukanya Verma took note of the film's anti-drug message; she considered Kapoor to be "spectacularly unbridled" in his part and added that "the believability he brings to his complex transition while preserving his inherent flakiness deserves all the praise". Kapoor won the Filmfare Critics Award for Best Actor (shared with Manoj Bajpayee for Aligarh) and received a Best Actor nomination at the same ceremony. A commercial success, it became Kapoor's largest-opening film at that time.
In his third collaboration with Vishal Bharadwaj, an epic romance set during World War II entitled Rangoon (2017), Kapoor played the part of a taciturn soldier who develops a romance with a film actress (played by Kangana Ranaut). Filming was marred by a reported feud between Ranaut and Kapoor, and although they denied the reports, both stars publicly commented against the other. The film received mixed reviews; Rajeev Masand termed the film "overlong, indulgent to the point of exhaustion", but praised Kapoor for playing his part with "remarkable maturity". In addition, Uday Bhatia of Mint was appreciative of the chemistry between Ranaut and Kapoor. Rangoon failed to recoup its ₹610 million (US$6.3 million) investment.
Kapoor next played Rawal Ratan Singh, a 14th-century Rajput ruler, in Sanjay Leela Bhansali's period drama Padmaavat (2018), co-starring Deepika Padukone and Ranveer Singh. Amid violent protests by right-wing Hindu groups, who speculated that the film distorted historical facts, it was cleared for release by the CBFC after several modifications were made. Ankur Pathak of HuffPost was disappointed in the film's adherence to regressive patriarchal mores and criticised Kapoor for being "a bit too stiff and robotic". Padmaavat had a production budget of ₹2 billion (US$21 million), making it the most expensive Hindi film ever made. With a worldwide gross of ₹5.45 billion (US$57 million), it ranks among the highest-grossing Indian films of all time and is the biggest success of Kapoor's career. Later that year, he starred in Batti Gul Meter Chalu, a social problem film about electricity issues in rural India, for which he learnt the Garhwali dialect. Filming was temporarily suspended when its production company, KriArj Entertainment, failed to remunerate the crew, and resumed after Bhushan Kumar took over the project. Saibal Chatterjee reviewed, "Kapoor, working within a screenplay that is undercooked and confused, tries his very best to make the best of a bad deal but is unable to pack any real power". The film had average box office returns.
In 2019, Kapoor starred in Kabir Singh, a remake of the Telugu romantic drama Arjun Reddy (2017), in which he played a self-destructive alcoholic pining for his ex-girlfriend. He found it challenging to distance himself from the part, and feared bringing home the experience to his wife and children. For scenes in which he played a college student, he lost 14 kg. Writing for The Indian Express, Shubhra Gupta criticised the film's misogynistic themes and found Kapoor to be "too old for this role, and his dissolution never feels as sharply realized as the one he managed so superbly in Udta Punjab". Even so, it earned over ₹3.7 billion (US$38 million) worldwide to emerge as the second highest-grossing Hindi film of the year and Kapoor's biggest commercial success in which he played the sole male lead. He received another Best Actor nomination at Filmfare.