La chiesa ha tre navate, divise da colonne in granito di Baveno, e abside poligonale. La navata maggiore è coperta con volta a botte intessuta di decorazioni in stucco; le navate laterali sono coperte con volte a vela. La sola parete meridionale della navata laterale destra conserva tracce di affreschi cinquecenteschi, tra cui un’Adorazione dei Magi e due santi a lungo attribuiti ad un intervento giovanile di Benardino Luini e oggi ricondotti ad una modesta bottega operante tra Milanese e valli varesine e comasche. La facciata è a capanna con due ali laterali ribassate e raccordate al corpo centrale con due volute. Il campanile romanico si eleva integro sul lato meridionale, nei pressi dell’abside.
XII – Il primitivo impianto, come è stato possibile indagare durante lavori di restauro conservativo, era quello di una chiesetta ad aula unica. Non rimane, oggi, che il campanile, databile all’ultimo quarto del XII sec.
XVI – A partire dai primi decenni del XVI sec. furono intrapresi lavori di adeguamento che si concretizzarono nella costruzione di una cappella sul fianco meridionale della chiesa medievale. Questa cappella fu concepita per proteggere un modesto affresco di grande devozione popolare, dipinto in precedenza sulla parete esterna del campanile. Nel volgere di pochi anni, l’intera cappella fu rivestita di cicli di affreschi, a lungo attribuiti ad un intervento giovanile di Bernardino Luini.
XVII – A partire dalla metà del XVII sec. la chiesa fu interessata da un’ingente campagna di lavori. Direttore e ideatore fu, forse, Gerolamo Quadrio, in quegli anni impiegato nella costruzione dell’oratoriodi S. Giuseppe a Luino per conto della famiglia Marliani. Tra i due cantieri, infatti, sono state rilevate affinità tecniche e di finiture ornamentali. In occasione di questi lavori di ampliamento fu innalzata la nuova facciata.
1968 – Nel 1968 Restauro conservativo interno ed esterno della chiesa.