St. Oswald bei Freistadt liegt auf 608 m Höhe im Mühlviertel.
Die Ausdehnung beträgt von Nord nach Süd 8,8 km, von West nach Ost 8,3 km.
Die Gesamtfläche beträgt 41 km². 16,8 % der Fläche sind bewaldet, 22,6 % der Fläche landwirtschaftlich genutzt.
Das Gemeindegebiet umfasst folgende Ortschaften: