Длина — 549 км (из них: 271 км в Челябинской области, 278 км в Республике Башкортостан), общее падение — 714 м, площадь бассейна — 15 тыс. км². Средний уклон уменьшается с 4,3 % в истоке до 2,2 % у с. Лаклы и до 1,3 % в нижнем течении. По физико-географическим условиям бассейн реки делится на горную (от истока до села Лаклы Салаватского района) и равнинную (до устья) части. Горная часть расположена в пределах складчатых гор и предгорий Южного Урала. Равнинная часть лежит на Юрюзано-Айской равнине и Уфимском плато. Берёт начало из болота Клюквенное, расположенного на стыке хребтов Уреньга и Аваляк Южного Урала, в 2 км к юго-западу от кордона Южный и в 70 км к юго-юго-западу от города Златоуст. В верховьях течёт с северо-востока на юго-запад по территории Челябинской области. На территории Республики Башкортостан протекает с юго-востока на северо-запад через Кигинский, Салаватский, Дуванский и Мечетлинский районы и впадает в реку Уфа в 392 км от её устья.
На реке Ай расположены города Златоуст, Куса, Межевой Челябинской области и районные центры Дуванского (Месягутово) и Мечетлинского (Большеустьикинское) районов Башкортостана. Сток реки зарегулирован двумя водохранилищами, прудами.