Delade meningar råder om kyrkans tillkomst. Mest vedertagen är idag uppfattningen att kyrkan uppfördes som en treskeppig hallkyrka någon gång under 1400-talets senare hälft. Murarna uppfördes i huvudsak av tegel och yttertaket var spåntäckt, i mitten krönt med en klockförsedd takryttare. Väggarna kompletterades runt om av tolv strävpelare med småtorn. I de ursprungliga fönstren satt troligen masverk av kalksten eller tegel. Över kyrkorummet slogs 16 stjärnvalv. Koret avgränsades med ett skrank och hade sannolikt ett fristående altare med altarskåp. En tunnvälvd sakristia utbyggdes mot norr, med en kryssvälvd läktare/gapskulle i övervåningen. Kyrkans storklockor hängde i en klockstapel.
Omkring 1500 tillbyggdes ett vapenhus på södra långsidan. Sedan en brand inträffat 1569 blev yttertaket successivt omlagt med kopparplåt.
I början av 1600-talet tillkom ett nytt korskrank, varvid man sannolikt utgick från den medeltida föregångaren. Ett nytt altare murades invid dåvarande gavelväggen. I södra sidoskeppet byggdes en två våningars läktare för män. Den första kända orgeln installerades 1611 på gapskullen. Omkring 1618 kom den alltjämt bevarade predikstolen i ek på plats, helt fullbordad 1624. Slutna, dörrförsedda bänkkvarter byggdes 1659. Under denna tid blev fönstren fler och större. I tillkommande öppningar sattes gallerfönster av järn.
Vid en stor utbyggnad 1684-86 fick långhuset dagens omfång, genom att de tre skeppen förlängdes österut med vardera ett valv. Koret byggdes till, med gavlar murade i vinkel likadant som på Kristine kyrka. Däremot revs de medeltida småtornen på långhusets strävpelare. Altarskåpet, korskranket och predikstolen flyttades österut i det utökade kyrkorummet. Altare murades invid den nya gavelväggen. Ytterligare en utbyggnad skedde 1691, då sakristians östliga kupolvälvda rum lades till. År 1698 flyttades orgelverket från gapskullen till en nybyggd läktare i väster.
Under hela 1600-talet gravsattes bergsmän och andra välbärgade inne i kyrkan, så att golvet i allt större utsträckning upptogs av gravhällar. En mängd epitafier prydde pelare och väggar.
Vid blixtnedslag i takryttaren den 23/6 1757 bröt eld ut och förstörde hela yttertaket och tre av kyrkorummets valv, liksom orgelverket. Annan fast inredning måste evakueras. Vid följande reparationer valdes att inte återuppföra takryttaren. Takets omläggning skedde med brandskadad koppar som blivit omsmält i Avesta.
Då biskop Benzelstierna visiterade 1770 efterlystes en uppröjning av allt gammalt, som inte längre tjänade gudstjänstens behov. Bland annat föreskrevs att det medeltida altarskåpet borde avlägsnas. Så skedde vid en förnyelse av koret 1780, då även korskranket revs. En ny altarring av trä byggdes, med fyllningar och ramverk målad i vitt med blå lister. Predikstolen ommålades likadant och möjligen fick även bänkkvarteren en ljus färgsättning. Det murade altaret från utbyggnaden 1686 behölls, men inkläddes med trä som marmorerades. Altarskåpet ersattes med en avsevärt större altarprydnad, ritad av Olof Tempelman. För att den skulle komma till sin rätt blev korets östra gavelfönster igenmurat.
Åren 1780-81, i direkt samband med korets förnyelse, uppfördes kyrkans västtorn. Material till detta stora bygge erhölls genom rivning av sydsidans vapenhus och västra gavelns mur. Klockstapeln revs och de fyra klockorna flyttades upp i det nybyggda tornet, från början krönt med endast en karnissvängd, kopparklädd huv. Den nya västportalen gjordes i nyklassicistisk stil, med en bred omfattning av putsrustik. Där insattes senare den så kallade varpdörren, klädd med koppar från den tidigare västportalens dörr.
En stor inre förnyelse inleddes 1799 med så kallad gravrannsakning. Generellt uttalades att Var och en i allmänhet borde övertalas till det förnuftiga beslutet att från all begravning i kyrkan avstå och sedan sådant blivit gjort, skall golvet överallt sättas i vederbörligt stånd. Fram till 1815 igenfylldes samtliga gravar inne i kyrkorummet. Det befintliga golvet av gravhällar och tegel ersattes med plank. Epitafier som suttit på kyrkorummets pelare borttogs så bristfälliga att man befarade att de skulle falla ner av sig själva och förorsaka någon olycka. Dessutom revs södra sidoskeppets allt bräckligare läktare. Kyrkans yttre förändrades vid samma tid genom att yttertaket efterhand spåntäcktes, då kopparen skadats vid stormar. De alltmer rostangripna gallerfönstren reparerades, några byttes ut helt.
Nästa stora förnyelse, verkställd 1899-1901 efter arkitekt Gustaf Petterssons program, var genomgripande för både exteriör och interiör. Långhuset fick en ny granitsockel, stora delar av befintligt fasadtegel utbyttes och fönsteröppningarna utvidgades. Istället för 1600- och 1700-talens gallerfönster murades nygotiska tegelmasverk, som inramade blyinfattade rutor av färgat katedralglas. Nygotikens ideal styrde även omgestaltningen av södra portalerna och tornet, som fick en hög spira rest ovanpå befintlig huv, samt småtorn i hörnen. På ytterväggarnas strävpelare restes småtorn, vilka skulle motsvara dem som funnits före branden 1757. Östra gaveln återfick ett fönster, som gjordes trekopplat och med glasmålning. Yttertaket täcktes med skifferplattor lagda i mönster.
Ännu mer förändrades kyrkans inre, vars valv och väggar nyputsades och fick dekorativa målningar. Pelarna mellan mitt- och sidoskepp fick sina tegelmurar frilagda. Trägolven från 1800-talets början revs ut, undergolv av betong göts och belades med polerade kalkstensplattor. 1600- och 1700-talens slutna bänkkvarter ersattes med öppna bänkrader.
Västra läktaren och norra sidoskeppets läktare revs - orgelverket flyttades ner till norra sidoskeppet. All målning skrapades av från predikstolen som nydekorerades och fernissades. Ett nytt, fristående altare murades av tegel, på framsidan och gavlarna täckt med kalksten från Yxhult. Altarprydnad och altarring nytillverkades av ljus ek.
På 1930-talet skedde en mer begränsad förnyelse, då altarprydnaden minskades till förmån för glasmålningen i bakomvarande fönster. I norra sidoskeppet iordningställdes en dopplats.
1963 återfick kyrkan en orgelläktare i väster, byggd efter ritningar av arkitekt Gösta Lilliemarck. Hela konstruktionen var modern, med bärande betongpelare vars ytor sandblästrades och slipades. Orgelverket fick en rent modernistisk utformning, en kontrast till kyrkorummet i övrigt. Arkitekt Lilliemarck anlitades även fyra år senare, då vapenhuset nyinreddes. Dess tidigare putsade tak kläddes med furupanel, nytt tegelgolv lades och väggarna slammades tunt så att murverket kan urskiljas. Glasade dörrpartier sattes upp mot västportalen och kyrkorummet, istället för tidigare panel och pardörr.
Vid kyrkorummets senaste större förnyelse, 1978-79, tillkom ett fristående altare och lösa knäfall. Sekelskiftets altarring borttogs då, men det murade altaret fick av praktiska skäl vara kvar. Valvens och väggarnas målningar rengjordes med bröd. Golvvärme installerades under bänkar och kor.
Yttertakets skiffer som legat sedan 1900 ersattes med kopparplåt vid en stor omläggning 1978-79. Samtidigt lagades fasadmurarna och fönstren kompletterades med yttre skyddsglas.