The church began as a small Romanesque building of grey stone, constructed at the end of the 1100s, and its western portion survives from that period. Around 1300 the church was extended eastwards and rebuilt as a Gothic hall church, with a sacristy added at the same time. When first built, the water of Mälaren reportedly reached higher than today, placing the church close to the lake shore.
In the later 15th century a tower was raised and the nave given brick vaults, along with a porch on the south side. In 1485 the walls and vaults were painted by Albertus Pictor, one of medieval Sweden's best-known church painters; these paintings were later limewashed over in 1776 but were uncovered and conserved in 1958, leaving fragments visible today. A fire in 1813 damaged the church, and the present west tower dates from 1830, replacing the burnt medieval tower; the old south porch was demolished and the tower's ground floor converted into a porch instead. Further restoration took place in 1967, when the medieval form of the chancel window was restored.
Inside, the font's bowl is of red sandstone and dates from the late 1100s, though it now rests on a later base. Five medieval sculptures are displayed on the south wall of the chancel, three of them originally part of a mid-15th-century altar cabinet, and a medieval sacrament cabinet also survives in the chancel. A modern altarpiece was created by Sister Lydia, a craftswoman of the Mariadöttrarna community at Vallby.
In 1990 a runestone was discovered near the church, inscribed in memory of a brother; it is now kept in the church loft. A related stone, raised by a son in memory of his father, is preserved at the Swedish History Museum. The present organ, built by Åkerman & Lund in 1973, was fitted into the older organ case dating from 1811.