A wooden church is thought to have stood on this site earlier, with a key-plate inscription on the south door, dated to around 1300, suggesting an even older predecessor. The present stone church, built of grey fieldstone with brick portals, dates its nave and sacristy to the first quarter of the 1400s, with the vaults added in the 1430s. The porch was added later, but no later than 1534 according to a dated lime-painting. The building is a fairly compact hall church, some 20 by 10 metres, with a rectangular three-bay nave (one bay forming the chancel), an attached sacristy, and a south porch.
Inside, the vault paintings are of particular interest. Renaissance-style lime paintings, said by old accounts to date from 1534, once covered much of the interior but were whitewashed over in the 1750s when the windows were enlarged for more light. A restoration in 1935–1936, led by architect Ärland Norén (also spelled Noreen), uncovered some of these paintings, though technical difficulties meant that the fuller painted scheme hidden in the vaults could not be recovered. Surviving painted decoration in the porch and above the organ loft still conveys something of the vivid visual teaching once offered to a largely non-literate congregation.
On the south wall, flanking the church door, is a painted scene showing a devil-like figure offering a pair of shoes to a woman — an illustration of an old local folk tale about a woman said to be worse than the Devil himself, a motif also found in other Uppland churches.
The church holds notable medieval treasures. The altar cabinet, carved in Antwerp around 1510, is considered the finest of these. Another cherished piece is a carved Madonna and Child, made in Lübeck in the later 1300s. A triumphal crucifix also survives from the late medieval period, and a blue Venetian velvet cope with partially preserved embroidery dates from the same era.
The church uniquely retains two organs: the original of 1783, built by O. Schwahn (sometimes given as Schwan) and Svahlberg of Stockholm, whose case and mechanism survive, and a later instrument of 1936 by Olof Hammarberg, placed behind the older organ. A separate detached bell tower southeast of the church, built in 1771 using timber from an older bell tower at Gimo bruk, houses two bells, the older of which was recast several times in the 18th and 19th centuries.
A broken runestone (U 597), found near the bridge below the church and later reassembled, now stands at the old rectory nearby — a reminder of activity at this site long before the medieval church was built.