PA 946 begins at an intersection with PA 248 in the community of Berlinsville in Lehigh Township in Northampton County, which is in the Lehigh Valley, heading northeast on two-lane undivided Mountain View Drive. West of PA 248, Mountain View Drive continues towards Walnutport. From the western terminus, the route passes through a mix of farms, woods, and residences. The road curves east and reaches the residential community of Danielsville, where it intersects Blue Mountain Drive a short distance south of Blue Mountain. Past this community, PA 946 heads southeast through a mix of rural areas and residences, curving east and passing through the community of Rockville. The route crosses into Moore Township and runs through a mix of farmland and woodland, passing through the community of Youngsville and crossing the Hokendauqua Creek. The road curves southeast into residential areas, passing through Klecknersville before coming to the northern terminus of PA 987 in Cross Roads. At this point, PA 987 continues southeast and PA 946 turns northeast onto Community Drive, passing more homes before curving east into a mix of farm fields and woods with a few residences. The route curves southeast and reaches the community of Moorestown, where it crosses PA 512. Past this intersection, the road becomes Nazareth Drive and curves south, passing residential neighborhoods. PA 946 heads southeast into a mix of farms, woods, and homes, where it crosses into Bushkill Township and becomes Daniels Road. The route soon enters Upper Nazareth Township and runs south through a mix of farm fields and residential subdivisions before it intersects PA 248 in Christian Springs. After this intersection, the road passes through a mix of farms and trees to the west of a quarry and crosses Norfolk Southern's Cement Secondary. The route runs through more rural areas and passes through the community of Georgetown before it crosses into Lower Nazareth Township. Here, PA 946 passes through a mix of agricultural areas and residential subdivisions before it reaches its eastern terminus at an intersection with PA 191 in the community of Newburg.
History
The present-day routing of PA 946 was not legislated as a route when Pennsylvania first legislated routes in 1911. In 1928, PA 946 was designated along an unpaved road running from a point between Danielsville and Youngsville, where a paved local road continued west towards Walnutport, east to PA 512 in Moorestown. The portion of road between Moorestown and PA 12 in Hecktown was designated as the southern portion of PA 512, which was unpaved and was under construction between PA 12 and PA 45. In the 1930s, PA 946 was extended to its current alignment between PA 45 near Walnutport and PA 12 in Hecktown, by which time the entire road was paved. The route replaced PA 512, which was rerouted to head south to Bethlehem, between Moorestown and Hecktown. PA 946 has remained on the same alignment since.