The church has grey stone walls and a cruciform plan with a west tower, a porch to the south and a sacristy to the north. Its origins lie in the late 13th century, when the tower and west transept are thought to have been built as part of an earlier, narrower nave and chancel. Traces of a well beneath the tower have led to suggestions that the building may originally have served as a baptismal church. The porch was added in the early 14th century, and around the mid-15th century the nave was given vaulting, with surviving wall paintings bearing an inscribed date of 1456. Towards the end of the medieval period the church was enlarged with a new chancel, transepts and sacristy, giving it the cross-shaped layout seen today.
The exterior was rendered in yellow and its windows enlarged during the 1760s, then altered again in 1827, when the tower was structurally separated from the nave. A new tower roof was added in 1802 after lightning strikes had damaged the earlier structure. A restoration in 1925 aimed to recover more of the church's original medieval character in the interior.
Among the furnishings, two oak crucifixes stand out: one attributed to the so-called Rasbo Master, dated to the early 14th century, and another from a Mälardalen workshop of the later 15th century. The altarpiece, carved from Gotland sandstone, was donated in 1649 by Åke Ulfsparre af Broxvik, admiral and member of the Privy Council, and his wife Margareta Kyle; the pulpit was a gift from the same donor. A sandstone font was added in 1950, given by a local church youth group. Chancel windows carry stained glass based on designs by Olle Hjortzberg.
In the north transept is a Maria Chapel with a modern altarpiece painted in icon technique by Bengt Olof Kälde in 1996, alongside a further icon of his from 2000 in the south transept; Kälde also created a large wall mosaic depicting the Rasbo district in the parish hall. The church bears three bells: the largest, cast in 1583, cracked in 1708 and was recast in 1710; the smaller bell was recast several times during the 17th and 18th centuries; a third, medieval bell once served as the striking bell for the tower clock and still hangs in the lantern.
The church's organ history is unusually rich for a rural parish. An 18th-century instrument was built by Olof Hedlund, completed after his death in 1749 by Carl Holm; its façade survives, though it no longer sounds, having been retained as a case for a later pneumatic organ built in 1918 and subsequently altered. A separate mechanical organ was installed in 1985, and a smaller Danish-built organ, moved from chapels in Uppsala, now stands in the Maria Chapel.