Керала расположена на крайнем юге индийского субконтинента, между Арабским морем на западе и Западными Гхатами (Гатами) — на востоке. Граничит с двумя индийскими штатами: Тамилнадом (на востоке) и Карнатакой (на северо-востоке). Береговая линия штата протянулась на 590 км, тогда как его ширина составляет всего от 35 до 120 км. Можно выделить три основных географических региона: возвышенности внутренних восточных районов, холмистая местность центральных районов и плоская прибрежная равнина на западе. Дикие горные регионы покрыты лесами, тогда как более освоенные занимают кофейные и чайные плантации. Равнины почти полностью заняты сельскохозяйственными угодьями. Средняя высота Западных Гхат составляет 1500 м, но высота отдельных гор достигает 2500 м. Самая высокая точка Кералы — гора Анамуди (2695 м).
Основные реки Кералы включают Перияр (244 км), Бхаратапужа (209 км), Памба (176 км), Чалияр (169 км), Кадалунди (130 км), Валапаттанам (129 км) и Ачанковил (128 км). Остальные реки сравнительно небольшие, большинство их имеет полностью муссонное питание. Средняя длина рек штата — 64 км. Вдоль побережья Аравийского моря протянулась цепь лагун и озёр, соединённых каналами и питаемых реками. Система включает как пресноводные, так и солоноватые водоёмы, имеющие сообщение с Аравийским морем; регион отличается уникальной экосистемой. Крупнейшее озеро штата — Вембанад, имеет площадь 2033 км².