Geilenkirchen liegt etwa 20 km (Luftlinie) nördlich von Aachen, mit der zum Stadtgebiet gehörenden Teverener Heide unmittelbar an der niederländischen Grenze, am Südostrand des Selfkant, im Tal der Wurm.
Die Stadt erstreckt sich beiderseits der Wurm auf den sanft ansteigenden Hängen des Wurmtales, die sich von 70 m über NHN (Normalhöhennull) auf Flussniveau bis auf rund 100 m Höhe erheben. Geilenkirchen erstreckt sich über 9,5 km in Nord-Süd-Richtung und über 15,4 km Ost-West-Richtung.
Die drei Ortsteile Geilenkirchen, Bauchem (beide links der Wurm) und Hünshoven (rechts der Wurm) sind mittlerweile vollständig zusammengewachsen und bilden die Kernstadt. Die Wurm im Stadtzentrum ist über einige hundert Meter überbaut. Der höchste Punkt im Gemeindegebiet liegt bei Gut Muthagen mit 122,5 Meter.
Geilenkirchen grenzt im Norden an die Stadt Heinsberg, im Nord-Osten an die Stadt Hückelhoven, im Osten an den Kreis Düren, im Süd-Osten an die Stadt Baesweiler, im Süden an Übach-Palenberg, und im Westen an die Städte Landgraf (NL) und Brunssum (NL) sowie im Nord-Westen an die Gemeinde Gangelt.
Geilenkirchen entstand am linken Ufer der seinerzeit mäandernden Wurm bei einer schon in der Römerzeit benutzten Furt. Grabfunde aus dem 6. und 7. Jahrhundert sowie einzelne frühmittelalterliche Scherben bezeugen die Anfänge des Ortes noch im frühen Mittelalter. Die schriftliche Überlieferung setzt zum Jahr 1170 ein, als der Kölner Erzbischof Philipp I. von Heinsberg Schenkungen an die Stiftskirche St. Gangolf tätigte. Die mittelalterliche Stadt lag an der Römerstraße Aachen-Roermond, die hier die Wurm querte; die Furt war später bzw. ab dem 12. Jahrhundert durch eine Wasserburg der Grafen von Heinsberg gesichert. Reste dieser Burg sind nach ihrer Zerstörung 1945 heute integriert in das Bischöfliche Gymnasium „St. Ursula“.
1798, in der Zeit der Besetzung des Rheinlandes durch Napoleon (Franzosenzeit 1798–1814), war Geilenkirchen im Département de la Roer, im Arrondissement d’Aix-la-Chapelle ein Kanton. Napoleon der I. war es, der die erste nachweisliche Steinbrücke über die Wurm bauen ließ, als Geilenkirchen unter französischer Herrschaft war.
1815, unter preußischer Herrschaft, entstand der Kreis Geilenkirchen.
1918, nach dem Ersten Weltkrieg, wurde das Rheinland entmilitarisiert und von alliierten Truppen besetzt; in Geilenkirchen gab es französische, marokkanische sowie belgische Truppen (Marokko war seit 1912 französisches Protektorat). Von 1918 bis 1929 waren belgische Besatzungssoldaten in einer Kaserne (Kamp van Dinant) stationiert, die im Bereich des Hünshoverner Hofes gebaut wurde.
1932 wurde der Kreis Geilenkirchen mit dem Landkreis Heinsberg zusammengelegt und es entstand der Selfkantkreis Geilenkirchen-Heinsberg mit der Stadt Geilenkirchen als Kreisstadt.
Im Zweiten Weltkrieg war Geilenkirchen eingebunden im Westwall. Am 19. November 1944 besetzten die Alliierten Geilenkirchen.
Nach dem Krieg war Geilenkirchen Teil der Britischen Besatzungszone..
1953 errichtete die Royal Air Force im Stadtteil Teveren auf einem schon in den 1930er Jahren genutzten Feldflugplatz einen Fliegerhorst, den sie bis 1968 nutzte und dann an die Luftwaffe übergab. Dieser ist heute NATO-Stützpunkt.
1971, bei der kommunalen Gebietsreform durch das Aachen-Gesetz, verlor Geilenkirchen den Status der Kreisstadt, da der Kreis Geilenkirchen-Heinsberg und der Kreis Erkelenz zum neuen Kreis Heinsberg zusammengefügt wurden. Neue Kreisstadt wurde die Stadt Heinsberg. Im ehemaligen Kreishaus des Selfkantkreises Geilenkirchen-Heinsberg ist seitdem das Finanzamt untergebracht.
Nach der Volksetymologie bezieht sich der Name Geilenkirchen ursprünglich auf eine Holzkirche, die ein Franke namens Gelo errichtet habe, etwa im Sinne von „Geilos Kirche“. Ursprünglich hieß Geilenkirchen „Gelekircke“ (Lokales Idiom auch „Jellekercke“; auf Niederländisch früher „Geelkerken“).
Der Name begegnet seit dem letzten Drittel des 12. Jahrhunderts in den verschiedensten nieder- und hochdeutschen Formen und Mischformen, je nachdem ob die Schreiber der Urkunden Nieder- oder Hochdeutsche waren: 1170 Gelenkirchen, 1244 Gelinkerike, 1252 Gelenkirche, 1270 Geilenkirge, 1276 Gelinkirke, 1277 Geilinkirchin, 1290 Gelinkirken, 1328 Gelynkirchen, 1363 Geillenkyrken u. s. w.
1747 wird die Stadt als „Gedekirch“ auf einer Karte der „Katholischen Niederlande und angrenzende Deutsche Provinzen“ angegeben.
Die Mundart hat bis heute in ihrem „Gelekerke“ die ursprüngliche niederdeutsche Form festgehalten.