Дёма берёт начало на северных склонах Общего Сырта в 2 км к северо-востоку от села Алёшкино Фёдоровского района Башкортостана. Далее течёт по территории Оренбургской области и вновь по Башкортостану. Длина реки — 535 км, площадь бассейна — 12 800 км². Среднегодовой расход воды в устье — 35 м³/сек. Дёма течёт в широкой долине, сильно петляя, в низовьях — протоки и старицы. На реке расположен город Давлеканово.
На территории Оренбургской области река имеет 28 притоков первого порядка, в том числе 11 длиной более 10 км. Основные притоки: р. Большой Изяк (п.б. 496-й км, длина 58 км), р. Тятер (п.б. 465-й км, длина 91 км), р. Садак (л.б. 407-й км, 74 км) и река Удряк (впадает недалеко от деревни Дим Чишминского района Башкортостана).
Впадает в реку Белую слева, на 475-м км от устья, у города Уфы, район название которого также образовано от Дёмы.