Jakarta ligger på nordvestkysten av Java, ved munningen av Ciliwungelva i Jakartabukta, som er et inntak fra Javasjøen. Den nordlige delen av Jakarta ligger på sletteland, på omtrent åtte meter over havet. Dette bidrar til jevnlig flom. De sørlige delene av byen er preget av åser. Det er om lag tretten elver som flyter gjennom Jakarta, der de fleste flyter fra åslandskapet i den sørlige delen nordover mot Javasjøen. Den viktigste elva er Ciliwungelva som deler byen i vestlige og østlige administrative områder. Byen grenser mot provinsen Vest-Java i øst og provinsen Banten i vest.