El edificio actual data del siglo XVII y consta de una única sala, con capillas laterales y coro cuadrado. La fachada, por su parte, data del siglo XV y en la banda central tiene un rosetón de terracota colocado entre dos rosetones más pequeños[1].
El imponente campanario data de mediados del siglo XI. La construcción utiliza diversos materiales de origen romano con intención decorativa, especialmente en la parte próxima a la espadaña.[3] Inmediatamente a la derecha, hay una parte del antiguo baptisterio anexo a la iglesia, y en la primera capilla, también a la derecha, hay un retablo, pintado por el milanés Giovan Battista Sassi, que representa a San Andrés Avellino muriendo frente al altar. En el luneto del presbiterio hay un fresco con el Padre Eterno de Federico Faruffini.[1] La construcción de la cripta data probablemente de mediados del siglo X a principios del siglo siguiente. Se desarrolla íntegramente bajo la planta actual de la iglesia y se accede por una escalera por la que se baja, por el lado norte de la nave de la iglesia. Debido a las intervenciones promovidas en 1611, la cripta se cerró y se utilizó únicamente como osario.
La mayoría de los soportes son de forma trapezoidal, sin capiteles ni repisas. Por otra parte, las dos columnas que enmarcan el altar llevan capiteles desnudos, unos de época romana, otros lombardos. Los frescos, que datan del siglo XII, representan en su mayoría santos locales; hay una escena de la vida de Juan Bautista, muy comprometida. En el pilar derecho están representados San Siro y el Papa Gregorio I, sosteniendo un volumen en la mano. En el pilar pequeño, frente a San Siro, se encuentra la figura de San Juvencio de Pavía, segundo obispo de la ciudad.
El descubrimiento de la cripta, enterrada durante siglos y reducida a cementerio, se produjo el 18 de abril de 1914 gracias a la iniciativa de monseñor Faustino Gianani quien, siguiendo las indicaciones de numerosas fuentes históricas, mandó excavar un túnel en el patio de atrás.
Durante los trabajos posteriores al hallazgo, el nivel del pavimento original no fue reconocido entre los escombros y fue removido. Por tanto, el nivel actual es inferior al original y corresponde al del ambiente termal romano, donde se ubicaba el hipocausto del calidarium romano, utilizado en la Edad Media como cantera de ladrillos y materiales de construcción.[4]