Krnov liegt in den Ostsudeten nahe der polnischen Grenze, durchflossen von der Opava. Die Stadt befindet sich im Verwaltungsbezirk Bruntál und ist umgeben von Úvalno und Býkov-Láryšov im Süden sowie Brantice, Hošťálkovy und Město Albrechtice im Westen. Mit Bruntál ist sie durch eine Straße verbunden, während Ostrava etwa 50 Kilometer entfernt ist.
Erstmals erwähnt wurde Krnov im Jahr 1221, doch ihre Blütezeit erlebte sie als Hauptstadt eines eigenständigen Herzogtums zwischen 1377 und 1523. Jahrhundertelang gehörte die Stadt zur Habsburgermonarchie, zunächst zur österreichischen, später zur österreichisch-ungarischen. Bis 1918 war sie Sitz eines gleichnamigen Verwaltungsbezirks in der österreichischen Provinz Schlesien. Ein Postamt an der Bahnstation wurde 1875 eröffnet.
Die Stadt prägt eine Mischung aus historischem Erbe und moderner Infrastruktur. Zu ihren bekanntesten Persönlichkeiten zählen die Schriftstellerin Edith Ballantyne, der Architekt Leopold Bauer und der Eishockeyspieler Radek Bonk. Mit mehreren europäischen Städten ist Krnov partnerschaftlich verbunden, darunter Głubczyce in Polen, Karben in Deutschland und Saint-Égrève in Frankreich.