There are
678 mi
from Montgomery, AL to Hannibal, MO
That's the driving distance. It would take 12 hours 57 mins to go from Montgomery, Alabama to Hannibal, Missouri.
The flight distance (direct flight from Montgomery, AL to Hannibal, MO) is 580.42 mi.
678 mi = 1,090.81 kms