The state highway runs 57.38 miles (92.34 km) from U.S. Route 301 (US 301) and SR 35 in Templeton north to US 360 Business in Mechanicsville.
South of the James River, the state highway connects Templeton in Prince George County with Hopewell, which is directly served by SR 156 Business.
SR 156 crosses the James River on the Benjamin Harrison Memorial Bridge and briefly passes through Charles City County.
For most of its length in Henrico and Hanover, the state highway is a rural road that provides access to several units of Richmond National Battlefield Park.
US 301 and SR 35 head west along Courtland Road to provide access to the remaining ramps of the highways' diamond interchange with I-95.
SR 156 and US 301 run concurrently north along Prince George Drive before US 301 splits northwest to follow Crater Road toward Petersburg.
At Carters Mill Road, SR 156 makes a right-angle turn north just before passing through the Malvern Hill unit of Richmond National Battlefield Park.
SR 156 and US 60 expand to a four-lane divided highway again as they begin to follow the northern edge of the Richmond International Airport property.
The four-lane divided highway has a cloverleaf interchange with I-64 and, just to the north, intersects Norfolk Southern Railway's Richmond District at grade.
SR 156 crosses over I-295 with no access and passes by the Beaver Dam Creek unit of the battlefield park before entering Mechanicsville.