Град Кнежа се намира в северозападната част на България. Отстои на 64 км североизточно от Враца, на 30 км северозападно от град Червен Бряг и на 12 км източно от град Бяла Слатина и на 48 км от Плевен. На 8-14 км източно е река Искър, съседни селища са: град Искър (известен още като Пелово), село Долни Луковит, село Гостиля, село Ставерци, село Галово, село Остров, село Селановци, село Бърдарски Геран, село Търнак, село Лазарово и село Бреница.
Землището на Кнежа е около 170-180 хиляди декара и заема централната част на равнината между реките Дунав (на север), Искър (на изток) и Скът (на запад). В посока от югозапад към североизток през землището протича малка рекичка известна с името Гостиля. Началните ѝ изворчета са в землището на село Враняк.
След това тя протича през землището на село Търнак и все още като малко поточе навлиза в землището на Кнежа, където приема водите на други изворчета и поточета. Увеличила своите води, река Гостиля напуска землището на Кнежа, преминава през северната част на землището на село Долни Луковит, след това навлиза в землището на село Гостиля и се влива в река Искър, южно от село Ставерци.