Neuenkirch liegt am südlichen Ende des Sempachersees. Mit 26,27 Quadratkilometern ist sie die zweitgrösste Gemeinde im Amt Sursee.
Sie erstreckt sich quer durch das ganze Tal; der nördlichste Punkt liegt beim Schlachtfeld oberhalb Sempach, der südlichste am Rotbach bei Hellbühl. Der höchste Punkt ist Windblosen (am Ruswilerberg; 757 m), der tiefste Punkt liegt am Sempachersee (504 m).