O filme descreve a vida de uma favela problemática do Rio de Janeiro chamada «Cidade de Deus». A trama se desenvolve em torno de dois meninos — Foguete e Dadinho. Apesar de sua forte amizade, os meninos têm ideias diferentes sobre o mundo ao seu redor. Foguete vai se tornar fotógrafo, e Dadinho é fascinado pelas atividades de uma facção criminosa local. Junto com uma gangue chamada «Gentle Trio», que inclui caras da favela, ele rouba um motel e mata um homem. Uma década depois, Rocket continua a perseguir sua paixão pela fotografia, enquanto Dadinho constrói um grande império de drogas com seu companheiro Benny, eliminando toda a concorrência, exceto o conhecido de Benny, Carrot. Benny torna-se vítima acidental de um dos traficantes, e sua morte permite que Dadinho finalmente lide com Carrot. Mais dez anos depois, Rocket está trabalhando como fotógrafo, e Dadinho se vê no meio de uma guerra entre clãs criminosos.