SR 50 begins as a 2-lane secondary highway in Hickman County at exit 148 on I-40 near Only as a continuation of Duck River Road. SR 50 travels southeast and crosses a bridge over the Duck River to enter Only and have an intersection with Dyer Road, which follows SR 50's former alignment through the community. SR 50 then passes through wooded areas as it bypasses Only to the south before having an intersection with SR 229, which provides access to the Turney Center Industrial Complex. SR 50 continues east to cross the Duck River again before paralleling it and having an intersection with SR 438. The highway then has two more crossings of the Duck river before passing near Grinder's Switch and entering Centerville. SR 50 then passes south of downtown as it then comes to an intersection with SR 48 and SR 100, where it becomes a primary highway as it turns south to have a short concurrency with them before leaving Centerville and continuing east, still paralleling the Duck River. for a short distance. The highway then passes south of Littlelot, where it has an intersection with SR 230 shortly before another bridge over the Duck River, an interchange with the Natchez Trace Parkway, and crossing into Maury County.
Maury County
SR 50 becomes Williamsport Pike as it turns southeast and has an intersection with SR 247 shortly before crossing another bridge over the Duck River and passing through Williamsport. The highway then continues through farmland to come to an interchange with US 43/US 412/SR 6 and entering Columbia. SR 50 roughly parallels the Duck River from the highway's beginning to Columbia; the highway crosses the river six separate times along this stretch. SR 50 enters Columbia from the northwest and has a short concurrency with US 412 Bus/SR 99 before bypassing downtown to the south along James Campbell Boulevard, where it becomes a 4-lane divided highway and has an intersection with SR 243. SR 50 then passes a major business district, where it has an intersection with SR 245 before having an intersection with US 31/SR 7. SR 50 then narrows to 2-lanes and has an intersection with Tom J Hitch Parkway before turning southeast and leaving Columbia, becoming New Lewisburg Highway. The highway now passes through farmland and has an intersection with SR 373 in the Glendale community before having an interchange with I-65 at exit 37, shortly before crossing into Marshall County.
Marshall County
SR 50 becomes New Columbia Highway and continues southeast to enter Lewisburg at an intersection where it becomes concurrent with US 431/SR 106. The highway then becomes N Ellington Parkway as it has an intersection with SR 417 just before splitting off from US 431/SR 106 onto Franklin Avenue to enter downtown. SR 50 then comes to an intersection and becomes concurrent with US 31A Bus/US 431 Bus. From here to Fayetteville, SR 50 is unsigned. They then go south through downtown before SR 50 and US 431 Bus split off from US 31A Bus and go east at another intersection with SR 373. They then leave downtown and come to an intersection with US 31A/US 431/SR 11/SR 106/SR 272, where US 431 Bus and SR 106 end and SR 50 becomes concurrent with US 431. They then become E Commerce Street before leaving Lewisburg and going southeast as Fayetteville Highway. The highway then passes through Belfast, where it has an intersection with SR 271, before continuing southeast through farmland to Petersburg, where it goes through town on Buchanan Street as it has a short concurrency with SR 129 and has an intersection with both SR 130 and SR 244 before leaving Petersburg and crossing into Lincoln County.
Lincoln County
US 431/SR 50 becomes Lewisburg Highway as it continues southeast through farmland to enter Fayetteville on the north side of town. It then passes through some neighborhoods as Bright Avenue before entering downtown Main Avenue N, where they come to an intersection with US 64/SR 15, where SR 50 splits from US 431 to follow US 64/SR 15 east. Turning northeast, it becomes Mulberry Avenue as it leaves downtown and comes to an intersection with US 64 Bypass and US 231/SR 10, where it becomes Winchester Highway. They then widen to an undivided 4-lane highway and leave Fayetteville. On the eastern edge of town, SR 50 breaks away from US 64/SR 15, turns northeast, and becomes Lynchburg Highway. From here on, SR 50 is signed. SR 50 passes through the small town of Mulberry before crossing into Moore County.
Moore County
SR 50 then becomes Fayetteville Highway and passes through several miles of farmland before entering Lynchburg, where it has an intersection with SR 55, turns secondary, and follows Main Street for a short distance before turning onto Winchester Highway and leaving Lynchburg. SR 50 then winds its way through the countryside for the next few miles before crossing a bridge over the Elk River and entering Franklin County, passing just south of Tims Ford Dam.
Franklin County
SR 50 continues as Lynchburg Road as it makes its way east to Broadview, where it has intersections with SR 121 and SR 476 before crossing an arm of Tims Ford Lake to enter Winchester. This section of SR 50 between Lynchburg and Winchester is popular with area motorcyclists and sports car drivers due to its sinuousness. In Winchester, SR 50 makes several turns and has several names until it joins US 41A/SR 16 as Dinah Shore Boulevard in downtown. The highway then leaves downtown as it widens to an undivided 4-lane highway and crosses a bridge over an arm of Tims Ford Lake and heads northeast out of town. SR 50 then becomes primary as it splits from US 41A/SR 16 as W Main Street to enter and pass through the neighboring town of Decherd as a 2-lane. Continuing northeast, SR 50 leaves Decherd and becomes Old Alto Highway and then Warren Chapel Road before rejoining US 64 as Veterans Memorial Drive. It then passes through the community of Alto before crossing into Coffee County.
Coffee County
US 64 and SR 50 pass through the southeastern most sliver of Coffee County, where it crosses the Elk River for a second time before crossing into Grundy County.
Grundy County
US 64 and SR 50 then come to an interchange with I-24 at exit 127, where SR 50 again splits from US 64 and becomes a secondary highway. SR 50 then enters Pelham to intersect US 41/SR 2 before crossing the Elk River for a third time. Continuing northeast, SR 50 becomes curvy as it climbs the Eastern Highland Rim onto the Cumberland Plateau as Elkhead Road and then Pelham Road. Shortly after reaching the Plateau, it becomes concurrent with SR 108. They then east to enter Altamont where SR 50 meets its eastern terminus at SR 56 in downtown.
History
At one time, SR 50 had an alternate route, designated SR 50A. It has since been renumbered SR 373.