L'edificio fu fatto costruire da Francesco Sforza nel 1453 per dotare la città di Milano di una moderna istituzione, simile allo Spedale degli Innocenti a Firenze. L'incarico fu affidato all'architetto fiorentino Filarete.
L'ospedale fu disegnato con criteri di modernità: ad esempio, le camerate per i malati erano dotati di canaline percorse dall'acqua del vicino Naviglio per mantenerne l'igiene ed evitare il diffondersi delle infezioni.
Successivamente la costruzione fu affidata agli architetti lombardi Solari e verso la fine del '400 a Giovanni Antonio Amadeo, che abbellì il portico e le facciate con le decorazioni che oggi vediamo.
Ercole, tondo in terracotta, di G.A.Amadeo.
La costruzione fu ingrandita nel '600, grazie ai finanziamenti di G.P.Carcano. In quel periodo i lavori vengono affidati a Richini, a cui si deve anche il cortile centrale.
Nel 1805, quando la costruzione fu ultimata, l'Ospedale Maggiore aveva una capienza di 2500 posti, maggiore di quella dei più importanti ospedali europei (Hotel Dieu di Parigi, General di Madrid ...). L'edificio, o meglio gli edifici che costituivano il complesso, ospitarono l'Ospedale Maggiore fino al suo trasferimento, effettuato nel 1938, nella zona di Niguarda.
Fu deciso di assegnare gli edifici alla nuova Università, ma il progetto non fu attuato immediatamente. L'edificio fu bombardato e notevolmente danneggiato nel '43, ma soprattutto nel '44 e'45.
L'opera di restauro ebbe inizio negli anni '50 ed è continuata in diversi periodi: recentemente si è concluso un ciclo di restauro e pulizia del cortile del Filarete, grazie all'intervento finanziario della Snam S.p.A.