Stationen blev åbnet i 1930, som en del af den nye jernbaneforbindelse vest for København. Nørrebro havde dog en station i forvejen ved Nordbanegade, men den blev nu nedlagt.
Den nye station ved blev lagt hvor Nørrebrogade ender og Frederikssundsvej begynder. Her lå i forvejen Lygten Station, der var endestationen for jernbanen til Slangerup.
Få år efter indvielsen af Nørrebro Station blev den en del af S-togsnettet, der åbnede i 1934.
Stationen er tegnet af DSB’s overarkitekt Knud Tanggaard Seest (1879-1972). Han gav stationen en tidstypisk udformning, med den karakteristiske perronhal som et særligt element. Stationen blev fredet i 1992.
Lige ved siden af Nørrebro Station lå København L station, som var endestation for Slangerupbanen. Stationens navn skyldtes, at den lå ved vejen Lygten.
I 2019 har den københavnske metro fået en station ved siden af Nørrebro S-togsstation med udgang til Folmer Bendtsens Plads.