Il 17 maggio 2004, giorno della vittoria del suo 17º scudetto, il Milan annunciò l'acquisto di Stam dalla Lazio per 10,5 milioni di euro pagabili in due rate: il trentunenne difensore olandese sottoscrisse un contratto biennale fino al 30 giugno 2006 e fece il suo esordio in maglia rossonera il 21 agosto successivo, in occasione della Supercoppa italiana vinta contro la Lazio, sua ex-squadra. Nonostante alcuni infortuni diede prova della sue abilità e fu schierato molto spesso dal tecnico Ancelotti sia come difensore centrale al fianco di Nesta (già suo compagno di reparto alla Lazio) che come terzino destro al posto di Cafu. Il 6 aprile 2005 realizzò il suo primo gol in maglia rossonera, sbloccando di testa il derby contro l'Inter nel quarto di finale di andata di Champions League. Arrivati in finale, i rossoneri incapparono in un'incredibile sconfitta contro il Liverpool che, dopo una difficile rimonta dallo 0-3 al 3-3, si aggiudicò la coppa ai rigori.