SH-48 begins at SH-78 six miles north of Durant. Running north, it is five miles to the first highway intersection, SH-22, just west of Kenefic. Highway 48 continues on to the north, passing through the community of Folsom, and at Coleman, SH-48A spurs off to the west, towards the town of Milburn. Seven miles ahead is Wapanucka, and the junction with SH-7. Nine miles past Wapanucka, SH-31 intersects, heading to the east, and in seven more miles Highway 48 reaches the town of Tupelo. Just north of Tupelo, SH-48 intersects SH-3, and then continues for to Allen, where it joinsSH-1 for a seven-mile concurrency to Atwood. At Atwood, SH-48 splits off to the north, crosses the Canadian River, and soon enters the city ofHoldenville, seat of Hughes County. SH-48 meets US-270 Business in Holdenville, then intersects US-270 just north of town. SH-48 intersects with SH-9 in northwestern Hughes County, and then turns to the east the junction with SH-99A, just west of Bearden. Highway 48 turns back to the north soon after leaving Bearden, and crosses the North Canadian River just south of the I-40 junction. Two miles after I-40, SH-48 crosses SH-56 five miles west of Okemah, then US-62 five miles after that, just west of Castle. The between US-62 and the SH-16 junction in Bristow is very rural, with no settlements of any size. At Bristow, SH-48 joins SH-16 and SH-66 for a short three-route concurrency through town. SH-16 branches off just north of downtown Bristow, and SH-48/SH-66 intersect with I-44/Turner Turnpike at Bristow's northern edge. Four miles after I-44, SH-66 splits off the east, and Highway 48 continues north eight miles to SH-33, then another nine miles to SH-51, two miles west of Mannford. SH-48 crosses the Cimarron River and skirts the western edge of Keystone Lake as it travels its final few miles, intersecting with US-412/Cimarron Turnpike just before terminating at US-64, eight miles south of Cleveland.
SH-48A
SH-48 has one lettered spur, State Highway 48A. SH-48A connects SH-48 to SH-78 at Milburn, in Johnston County.