1. Ranbir Kapoor and Kareena Kapoor Khan instead of Ranveer Singh and Priyanka Chopra in Dil Dhadakne Do.
Zoya Akhtar wanted Kareena to play the role of Ayesha but the latter refused because the film demanded her to be on a cruise for 90 days. After Kareena chose to reject the film, Ranbir also dropped out of the project. Priyanka and Ranveer were then cast as the siblings.
2. Kareena Kapoor Khan instead of Ameesha Patel in Kaho Naa... Pyaar Hai.
3. Saif Ali Khan instead of Shah Rukh Khan in Dilwale Dulhania Le Jayenge.
Believe it or not, SRK wasn't keen on doing the movie and Aditya Chopra pursued him for the longest time. After some meetings with SRK, Chopra offered the film to Saif but he too declined the offer. Chopra went back to pursuing SRK and after a few more narrations, the movie was made. The rest is history.
4. Abhishek Bachchan instead of Hrithik Roshan in Kabhi Khushi Kabhie Gham.
Karan Johar cast Hrithik for the role of Rohan post his success his Kaho Naa... Pyaar Hai but the Bachchans were unhappy because they wanted Abhishek to play their son in the movie. Karan mentions the same in his autobiography as well. Abhishek also had a cameo in the film which was later deleted.
5. Hrithik Roshan and Abhishek Bachchan instead of Aamir Khan and Akshaye Khanna in Dil Chahta Hai.
Farhan Akhtar had Hrithik in mind for the role of Siddarth (that was later played by Khanna). Abhishek too, was offered the role but he refused to do it. Both actors turned down the roles as they had signed on other films. Their loss ¯\_(ツ)_/¯.
6. Shah Rukh Khan instead of Sanjay Dutt in Munnabhai MBBS.
Back in 2012, Vidhu Vinod Chopra told PTI that he offered the role of Munna to SRK and he wanted Sanjay Dutt to play the role of Zaheer (what was later portrayed by Jimmy Shergill). Things didn't work out the way Chopra planned, but they worked out nonetheless.
7. Hrithik Roshan instead of Shah Rukh Khan in Swades.
Hrithik turned down the role of NASA scientist Mohan Bhargava for reasons unknown, and SRK went on to give one of the best performances of his career.
8. Shah Rukh Khan instead of R. Madhavan in Rang De Basanti.
In an interview with Catch News, Rakeysh Omprakash Mehra revealed that he wanted to bring the two Khans together for this movie. He offered SRK the role of Ajay Rathod but he couldn't take it because of prior commitments. Madhavan came on board thereafter.
9. Ranveer Singh instead of Ranbir Kapoor in Bombay Velvet.
In an interview with PTI back in 2014, Anurag Kashyap disclosed how he wanted Ranveer to play Johnny Balraj in the movie but Ranveer's fee was out of his budget. Hence, Anurag was compelled to move on.
10. Twinkle Khanna instead of Rani Mukerji in Kuch Kuch Hota Hai.
In her Koffee With Karan debut, Twinkle revealed how Karan Johar had written the film's story with her in mind for Tina's role. But after the narration, Twinkle turned down the offer and Rani was cast instead.
11. Kareena Kapoor Khan and Salman Khan instead of Deepika Padukone and Ranveer Singh in Bajirao Mastani.
Sanjay Leela Bhansali's biggest dream was to cast Salman and Aishwarya in this ambitious project. But after their very public break-up, Aishwarya quit the film and Kareena was chosen as the new lead. Even a poster of Kareena and Salman was shot which is believed to be in SLB's office still. After a long hiatus, Bhansali moved on to Deepika and Ranveer.
12. Aishwarya Rai Bachchan instead of Kareena Kapoor Khan in Heroine.
Back in 2011, Aishwarya and Madhur visited the Cannes Film Festival to announce the movie. Later, Aishwarya opted out of the film due to her pregnancy and Kareena was roped in.
13. Frieda Pinto instead of Anushka Sharma in NH10.
Before Anushka decided to take the production reins of this film in her hands, NH10's director Navdeep Singh had Frieda in mind as the lead.
14. Kangana Ranaut instead of Vidya Balan in The Dirty Picture.
In an interview with Rajeev Masand in 2013, Kangana revealed that she was offered the film before Vidya but she refused to do it because she was afraid of being typecast in the role of a glamorous superstar who "sobs her way to her deathbed" (referring to her previous films Fashion and Woh Lamhe that had similar themes). Kangana also mentioned that she was glad the movie went to Vidya because she was phenomenal in it.
15. Sushant Singh Rajput instead of Aditya Roy Kapur in Fitoor.
Sushant was supposed to play the lead in the Abhishek Kapoor movie back in 2013 but media reports stated that he was "forced out" because of delays and it made way for Aditya to play the leading man. Safe to say, Sushant didn't miss out on much.
16. Sidharth Malhotra instead of Harshvardhan Kapoor in Bhavesh Joshi.
Vikramaditya Motwane wanted to make the movie with Sidharth in 2015 but put it on hold as he thought that "the story was no longer topical". When he decided to restart the production, Sidharth quit the movie and Harshvardhan was hired to play the role of the Gujarati vigilante. We'll know how iconic it turns out to be once it releases.