Upė prasideda vakariniame Pajūralio bažnytkaimio pakraštyje (Kvėdarnos seniūnija), buvusioje Pajūralio pelkėje (dabar sukultūrinta, ištiesinta upės vaga) apie 0,5 km nuo Jūros upės slėnio ir teka į vakarus skersai senslėnių, tik vietomis su jais sutapdama. Kvėdarnos seniūnijos teritorijoje (Šilalės rajonas) ji teka apie 15 km, Švėkšnos seniūnijoje (Šilutės rajonas) – 33 km. Vidutinis nuolydis 180 cm/km. Maksimalus debitas žiotyse 45 m³/s. Nuotėkio modulis 12,8 l/s iš 1 km². Slėnis 5–10 m gylio, upės plotis 5–8 m, gylis 0,4-1,7 m, srovės greitis 0,4 m/s.
Ant Ašvos kranto yra buvę 5 malūnai: Sauslaukyje, Stemplėse, Žąsyčiuose, Nautiltėje (15 jėgų), Stankiškiuose (14 jėgų). Po II pasaulinio karo visi malūnai sunyko. XX a. pirmoje pusėje, potvynių metu, upe buvo plukdomi popiermalkė ir rąstai į Klaipėdą. Upė Ašva (vokiškai Aschwa, Aszwa) pirmą kartą pavaizduota C. Hennenbergerio žemėlapyje (1576 m.).
Intakai:
- kairieji – Kesė, Varginys, Stigrė, Žvelesys, Pelkupis, Palkiotas.
- dešinieji – Burbeklis, Vyknešys, Remaulė, Šaka, Gurnupelis, Juodupis, Švėkšnalė, Vilnutis, Telšina, Greižena, Vatina.