Highway 156 begins at an intersection with Highway 22 in Clintonville. The route leaves Clintonville and runs through eastern Waupaca County before crossing into Shawano County. Highway 156 meets Highway 187 in southwest Shawano County. The highway runs through southern Shawano County and passes through the community of Navarino before meeting Highway 47 near Briarton. Highway 156 continues eastward through Briarton and meets Highway 55 in Rose Lawn before terminating at Highway 29 at the Brown County line.
The original route of Highway 156 ran from the intersection of Wisconsin Highway 22 and U.S. Route 45 in Clintonville to Nichols via Leeman. In 1954, the western terminus of the highway was moved north to its present location, and the highway ran westward until becoming concurrent with Highway 187 at their present junction. In the mid-1980s, Highway 156 was realigned to its current route; the former route remained Highway 187 on the concurrency and became Highway 168 from Leeman to Nichols.