Mumbai, Índia, 2008. Um grupo de terroristas chega à cidade de barco, disposto a promover uma série de ataques em locais icônicos da cidade. Um deles é o luxuoso hotel Taj Mahal, bastante conhecido pela quantidade de estrangeiros e artistas que nele se hospeda. Quando os ataques começam, o humilde funcionário Arjun (Dev Patel) tenta ajudar todos a se protegerem, enquanto David (Armie Hammer) e Zahra (Nazanin Boniadi) buscam algum meio de retornar ao quarto em que estão hospedados, já que nele está seu bebê e Sally (Tilda Cobham-Hervey), sua babá.