State Highway 31 (SH 31) runs from U.S. 84 northeast of Waco via Corsicana, Athens, Tyler, Kilgore to U.S. 80 in Longview.
The highway travels through rural areas of McLennan County, passing just north of Axtell.
In Hill County, the highway bypasses the towns of Mount Calm and Hubbard.
SH 31 passes just north of the Richland-Chambers Reservoir before entering the town of Powell.
The highway then travels through the town of Kerens before crossing the Trinity River into Henderson County.
SH 31 passes just south of the Cedar Creek Reservoir while serving the towns of Trinidad and Malakoff.
SH 31 then leaves the loop in northeast Athens near an intersection with FM 317 then travels through the towns of Murchison and Brownsboro.
SH 31 intersects Loop 49 Toll and travels through suburban areas of Smith County before entering Tyler.
The highway travels through Tyler along Front Street, passing just south of the downtown area and serves as the southern terminus of US 271 near The Health Science Center at UT Tyler, then leaves the city just after intersecting Loop 323 for a second time.
Leaving Tyler, the highway's route becomes more rural again, traveling through wooded areas before entering Kilgore.
SH 31 turns in a more northward direction at South Street then ends at US 80 near downtown, with the road continuing north as Spur 63.