SR 25 begins as a secondary highway in Robertson County in
Barren Plains at an intersection with
SR 161, and goes east to an intersection with
US 431/
SR 65 just north of
Springfield. It continues east through rural unincorporated Robertson County, near
Cross Plains, to intersect and have a short concurrency with
SR 49, before separating and continuing east, becoming a primary highway. It then goes through the middle of Cross Plains and continues east to intersect
I-65. About later, it intersects
US 31W/
SR 41 and enters Sumner County. It then comes to an intersection with
SR 76 just south of
New Deal. It continues through
Cottontown to
Gallatin to intersect with
SR 109. It continues into downtown Gallatin to intersect and run concurrently with
SR 174/
SR 386. A short distance later, it intersects
US 31E/
SR 6, where SR 386 ends and SR 174 separated and continues north along US 31E/SR 6 into downtown, while SR 25 continues east. It continues through
Castalian Springs and enters Trousedale County. A short distance from the county line, it intersects
US 231 and
SR 10, with SR 10 running concurrently with SR 25 to
Hartsville. Continuing east, it enters Hartsville and intersects
SR 141, runs concurrent for a short distance, then separates and turns south, while SR 25/SR 10 continue east. Just outside of Hartsville, SR 10 separates and turns north, while SR 25 continues its eastward trek, and crosses into Smith County shortly afterwards. Just before the county line, SR 25 passes just north of the abandoned
Hartsville Nuclear Plant. After crossing into Smith County, it passes through
Dixon Springs. It then continues east to
Riddleton, and then to
Carthage, where it intersects
SR 80. Continuing into Carthage, it intersects with
SR 263, providing access to downtown. It then curves to the south and crosses the
Cumberland River and enters
South Carthage. It then ends at
US 70N/
SR 24/
SR 53 in South Carthage. ==Future==