Elva dannes ved samløpet av de tre kildeelvene Bílá («hvite»), Střední («midtre») og Černá («svarte») Opava i Vrbno pod Pradědem, og renner derfra mot øst til den munner ut i Oder ved byen Ostrava. 25 km av elva danner grensa mellom Polen og Tsjekkia. Langs elva ligger også byene Krnov, Opava, Kravaře og Hlučín.