Oulun normaalikoulu on Oulun vanhan koulun jälkeläinen. Koulun juuret ulottuvat katkeamattomina Oulun Pedagogioon (1609 – 1682) saakka. Pedagogion jälkeen seurasivat Oulun triviaalikoulu ja apologistiluokka (1682-1842) sekä neljäluokkainen Yläalkeiskoulu (Högre elementarskolan, 1842-1863).
Koulu laajennettiin vuonna 1863 yliopistoon johtavaksi Oulun alkeisoppilaitokseksi (Elementarläsoverket i Uleåborg), jossa oli suomi oli aluksi osittaisena opetuskielenä. Ensimmäiset ylioppilaat koulusta valmistuivat vuonna 1866. Vuonna 1873 ruotsi määrättiin ainoaksi opetuskieleksi ja koulu toimi Oulun ruotsalaisena lyseona (Svenska lyceet i Uleåborg) vuosina 1874 - 1899.
Vuonna 1890 koulu joutui siirtymään pitkäaikaisesta, vuonna 1828 Pokkitörmälle rakennetusta talosta entiseen Svendelinin taloon. Vuosina 1899-1904 koulu toimi Ruotsalaisena reaalilyseona, mutta määrättiin muuttumaan asteittain Suomalaiseksi reaalilyseoksi koska koulussa oli vain 74 oppilasta.
Parina vuotena koulun nimenä oli Oulun toinen suomalainen lyseo, kunnes sortoajan senaatti 1915 mahtikäskyllään supisti sen Oulun suomalaiseksi keskikouluksi. Sen yhteydessä toimi muutamia vuosia (1919 - 1922) Oulun maanviljelys- ja teollisuus-jaostoinen lyseo. Oulun suomalainen keskikoulu muutettiin 1955 Merikosken yhteislyseoksi, joka sai 1958 uuden koulutalon.
Merikosken yhteislyseo lakkautettiin 1960 ja tilalle perustettiin Oulun normaalilyseo, joka puolestaan lakkautettiin 1974 opettajankoulutuksen siirtyessä yliopiston yhteyteen. Oulun yliopiston opettajan-koulutuslaitoksen harjoittelukoulun nimeksi tuli Oulun normaalikoulu. Samalla lopetti toimintansa 1961 perustettu Oulun opettajanvalmistuslaitoksen harjoituskoulu, joka liitettiin Oulun normaalikouluun ala-asteeksi.
Arkkitehti Heikki Taskisen suunnittelemat koulurakennukset valmistuivat 1982 ja 1983 yliopistoalueelle Linnanmaalle.
Vuonna 2013 Oulun yliopisto keskitti opettajankoulutuksen Ouluun ja lakkautti Kajaanissa toimineen opettajankoulutuslaitoksen sekä sen yhteydessä olleen Kajaanin normaalikoulun. Kasvaneen opiskelijamäärän vuoksi Ouluun tarvittiin lisää harjoittelupaikkoja, jolloin Oulun kaupungin Koskelan koulu liitettiin osaksi Oulun yliopiston harjoittelukoulua.