There are
166 mi
from Roanoke, VA to Colonial Heights, VA
That's the driving distance. It would take 3 hours 40 mins to go from Roanoke, Virginia to Colonial Heights, Virginia.
The flight distance (direct flight from Roanoke, VA to Colonial Heights, VA) is 139.20 mi.
166 mi = 267.68 kms