There are
1,407 mi
from Tempe, AZ to Hannibal, MO
That's the driving distance. It would take 1 day 2 hours to go from Tempe, Arizona to Hannibal, Missouri.
The flight distance (direct flight from Tempe, AZ to Hannibal, MO) is 1,218.37 mi.
1,407 mi = 1.61 kms