PA 325 begins at an interchange with the US 22/US 322 in the community of Speeceville in Middle Paxton Township, Dauphin County, heading east-northeast on two-lane undivided Mountain Road. The road runs through wooded areas with some homes and fields, running along the southern base of Peters Mountain. PA 325 comes to an intersection with PA 225, turning south-southeast to form a concurrency with that route on Peters Mountain Road. The road passes through agricultural areas before heading into woods, with PA 325 splitting from PA 225 by heading east on Clarks Valley Road. The route heads through forested areas, curving northeast before heading north-northeast into a narrow agricultural valley with some homes, paralleling Clark Creek. Farther east, the road heads into more dense forests, running between Peters Mountain to the north and Stony Mountain to the south. PA 325 continues into Rush Township and passes along the northern shore of the DeHart Reservoir prior to continuing northeast through more forests. The road heads into another narrow agricultural valley with some homes and passes by Bendigo Airport. The route heads into Porter Township in Schuylkill County and turns north through more farmland with a few woods and residences. PA 325 heads into Tower City and becomes 10th Street, passing homes before ending at US 209.