II liga 2003/2004 – 56. edycja rozgrywek drugiego poziomu ligowego piłki nożnej mężczyzn w Polsce. Wzięło w nich udział 18 drużyn, grając systemem kołowym. Sezon ligowy rozpoczął się 8 sierpnia 2003, ostatnie mecze rozegrano 11 czerwca 2004. Pierwszą bramkę rozgrywek zdobył w 58. minucie meczu Pogoń Szczecin – Aluminium Konin zawodnik gospodarzy Tomasz Parzy (mecz zakończył się wynikiem 1:0).
Drużyny
Objaśnienia: Piotrcovia Piotrków Trybunalski zmieniła nazwę na Pogoń Szczecin, przejmując tradycje szczecińskiego klubu, który w I lidze zajął 16. miejsce. KSZO Ostrowiec Świętokrzyski i Błękitni Stargard Szczeciński wycofali się z rozgrywek po rundzie jesiennej.
Rozgrywki Uczestnicy rozegrali 34 kolejki ligowe po 8 meczów każda (razem 306 spotkań) w dwóch rundach: jesiennej i wiosennej.
Mistrz oraz wicemistrz II ligi uzyskali awans do I ligi, zespół z 3. rozegrał dwumecz barażowy o wejście do I ligi z 12. zespołem najwyższej klasy rozgrywkowej. Do III ligi spaść miały 4 ostatnie drużyny (w związku z wycofaniem się KSZO i Błękitnych spadły tam tylko 2 drużyny), zaś zespoły z miejsc 11–14 rozegrały baraże o utrzymanie z wicemistrzami grup trzeciego poziomu ligowego.