PA 191 begins along Nazareth Pike at an interchange with the US 22 freeway in Bethlehem Township, Northampton County in the Lehigh Valley.
From the interchange, PA 191 heads north-northeast along two-lane undivided Nazareth Pike and runs through Brodhead, passing businesses a short distance to the east of Monocacy Creek.
The route heads into industrial areas and passes north of a quarry, crossing a Norfolk Southern railroad spur.
PA 191 widens into a four-lane divided highway and passes through a corner of Palmer Township before crossing the Bushkill Creek into Stockertown as Industrial Boulevard, crossing a Norfolk Southern railroad spur and passing near more commercial development and industry before reaching an interchange with the PA 33 freeway.
The road passes near homes and commercial development with some farm fields before it comes to Edelman, where it crosses over the Little Bushkill Creek and the Plainfield Township Trail.
The route turns northeast before curving north and entering the borough of Bangor, where it comes South 1st Street and is lined with homes and some businesses.
The road turns northwest and leaves Stroudsburg for Stroud Township, passing businesses before running past homes.
The route runs through more woodland and turns northwest, passing near a forested residential development and reaching an intersection with PA 390.
The route heads into Sterling Township and becomes Twin Rocks Road, continuing through rural areas and coming to an interchange with I-84.
The road passes through a mix of farmland and woodland with some homes, coming to an intersection with PA 590 in Hamlin.
Here, the route passes west of Lake Ariel before it heads through residential areas and intersects the southern terminus of PA 296, turning to the east.
PA 191 curves to the northeast and runs through forests with some farm fields and homes, continuing into Cherry Ridge Township.
[3][7] PA 191 enters the borough of Honesdale and becomes Sunrise Avenue, passing a mix of residential and commercial development with some woodland.
After crossing the Lackawaxen River, US 6 splits to the west and both directions of PA 191 continue north on two-lane undivided Main Street, passing more homes.
The route leaves Honesdale for Dyberry Township and becomes Hancock Highway, passing east of the Wayne County Fairgrounds before running through forested areas.
PA 191 winds north through rural land and passes through Dyberry before bending north-northeast and crossing into Oregon Township.
The road continues through forests with some farm fields, passing through Siko before entering Lebanon Township.
[3][7] PA 191 continues through forests with occasional farmland and homes and crosses into Damascus Township, where it makes a curve to the north and passes through Hilltown.
The road enters Manchester Township and passes through Lookout before a curve to the north-northwest, heading through Priceville.
At this point, the Delaware River begins to follow the road to the northeast as it continues northwest through forests.
PA 191 continues to wind north along the west bank of the Delaware River through forests, passing through Stockport.
Following this, PA 191 curves northeast near homes and businesses and comes to its northern terminus at the New York border on the Hancock Bridge over the West Branch Delaware River, where the road continues as South Pennsylvania Avenue into the village of Hancock and provides access to NY 97.
[3][7] In the 1920s and 1930s, the first PA 191 number was designated from US 1 (Baltimore Pike) in Clifton Heights to Penrose Avenue in southwest Philadelphia.
Southbound PA 191 came from Nazareth, as Linden Street, and in Bethlehem, it turned west onto Union Boulevard.