SH 158 begins at an intersection with State Highway 302/Farm to Market Road 181 northwest of Odessa in unincorporated Ector County. The highway runs in an northeast–southwest direction until Philips Plant Road, turning into a more east–west direction. SH 158 enters the town of Goldsmith, intersecting with Farm to Market Road 866. The highway resumes its rural route and has an interchange with U.S. Route 385 north of Odessa. SH 158 turns into a southeast–northwest direction near the Ector–Midland county line. The highway shares a short overlap with State Highway 191 in west Midland. The overlap ends at an interchange with Loop 250, with SH 158 following Loop 250 until Interstate 20. The highway leaves Interstate 20 in southeast Midland, running southeast–northwest through rural Midland County. SH 158 runs through Glasscock County and Garden City before entering Sterling County. SH 158 shares an overlap with U. S. Route 87, with the two highways running through Sterling City together. SH 158 leaves US 87 at the eastern edge of Sterling City, running in a north–south direction before resuming an east–west direction. The highway runs through Coke County, serving the towns of Robert Lee and Bronte and later enters Runnels County. SH 158 ends at an intersection with U.S. Route 67/U.S. Route 83 in the town of Ballinger.
History
SH 158 was designated on March 19, 1930 on a route from Robert Lee to Bronte, replacing SH 70A. SH 158 extended northeast to Abilene and west to Sterling City on January 20, 1932. SH 158 extended west to Garden City on April 23, 1932. On July 15, 1935, the section from Robert Lee to Garden City was cancelled. On December 21, 1935, a section from Garden City to Midland was added, creating a gap. On February 11, 1937, the western section extended westward to Gardendale, replacing SH 216. On August 1, 1938, the section from Garden City to Sterling City was restored, partially closing the gap. On November 19, 1938, SH 158 extended west to 7.5 miles northeast of Ector-Winkler County line, its current end. On July 9, 1945, FM 652 was designated from SH 158 to SH 302. On September 26, 1945, FM 652 became part of SH 158. On February 12, 1948, the section from Bronte to Abilene was transferred to U.S. Route 277. On August 19, 1948, SH 158 was extended southeast to Ballinger, replacing SH 109. On September 26, 1963, SH 158 was extended along old location US 83. The two disconnected portions were finally connected on May 6, 1969 when Farm to Market Road 387, completed in 1959, was re-designated as SH 158.
Business routes
SH 158 has one business route. Business State Highway 158-B is a business loop that runs on the former routing of SH 158 through Midland. The route was created in 1984 when SH 158 was rerouted around town on top of Loop 250 and SH 349/IH 20. Loop 546 was redesignated as Business SH 158-B on June 21, 1990. On June 30, 2011, the road was rerouted to IH 20 Business, the former route from Loop 268 to Business SH 349 was returned to Midland and the former route from Business SH 349 to SH 158 was transferred to SH 140.