Het gebied waar nu Megen ligt werd al ver voor het begin van onze jaartelling bewoond. Op zandkoppen en oeverwallen vestigden zich Kelten vanwege de vruchtbare rivierklei langs de rivier. De Maas was ter plekke doorwaadbaar.
De plaats Magus werd in 721 voor het eerst genoemd in een document. Het lag op een landtong die aan drie zijden door de Maas werd omgeven.
Hoewel de plaats nooit groot is geweest en daarom door velen een dorp wordt genoemd, is Megen een echte stad. Megen kreeg in 1357 stadrechten. Vanwege zijn strategische ligging ten opzichte van Gelre, versterkte Jan van Megen in 1386 Megen met muren en torens. De stad kreeg vier stadspoorten.
In de Tachtigjarige Oorlog met Spanje werd de stad grotendeels verwoest.
Om de stad werd in de zestiende eeuw verschillende keren gevochten. Ook werd Megen veelvuldig door brand getroffen. In 1573 werd de Sint-Servatiuskerk verwoest.
Megen werd in 1581 door de Staatse troepen ingenomen
Enkele weken later werd Megen door de Staatse troepen in brand gestoken.
Later dat jaar werd de stadsverdediging ontmanteld. Alleen de Gevangenpoort herinnert nog aan de verdedigingswerken uit de veertiende eeuw. De Gevangenpoort is een vierkante toren met zadeldak tussen trapgevels.
Na de inname van Den Bosch in 1629 vestigden de franciscanen zich in Megen. Zij bouwden er een klooster en een Latijnse school. Deze school heeft als Sint-Antoniusgymnasium nog tot 1967 bestaan.
Toen Megen in 1795 door Frankrijk werd bezet, werd de burgerlijke stand ingevoerd.
Op 5 januari 1800 werd Megen door de Fransen bij het verdrag van Parijs verkocht aan de Bataafse Republiek en zo weer onderdeel van Brabant en Nederland.
Van 1806 tot 1810 werd Megen onderdeel van het Koninkrijk Holland, maar van 1810 tot 1813 was het wederom Frans grondgebied.
Tijdens deze periode werd het voormalige Graafschap Megen gesplitst in twee gemeentes, te weten Megen en Haren/Macharen. Teeffelen, dat ook bij het Graafschap Megen hoorde, werd ingedeeld bij Oijen.
In 1814 ging Megen op in het Koninkrijk der Nederlanden en in 1820 werden de twee gemeentes bij elkaar gevoegd tot de gemeente Megen c.a. (cum annexis, ofwel wat erbij hoort). Deze gemeente zou tot 1994 blijven bestaan. In 1994 werden de drie kernen Megen, Haren en Macharen onderdeel van de gemeente Oss.