From its southern terminus near the Pier in Old Orchard Beach, SR 5 leaves the town to the west, going towards the neighboring city of Saco.
North of Cornish, the highway follows the Saco River, crossing it at Hiram, to the town of Fryeburg.
It follows parallel to the west bank of the Ellis River to the route's end in Andover.
As designated in 1925, SR 5 was a longer route than it is today, originally terminating in South Arm near the southern part of Lower Richardson Lake.
In 1980, it was cut back to its current northern terminus in Andover at the intersection with SR 120.