There are 8 ways to get from San Diego to Hannibal by plane, bus, train (Amtrak), bus (Greyhound), car, shuttle, taxi, bus (Flixbus), or train
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Lambert–St. Louis International Airport, bus
best- Fly from San Diego International Airport (SAN) to Lambert–St. Louis International Airport (STL)plane SAN - STL
- Take the bus from Saint Louis to Hannibalbus
6h 50mFly to Quincy Regional Airport, taxi
cheapest- Fly from San Diego International Airport (SAN) to Quincy Regional Airport (UIN)plane SAN - UIN
- Take the taxi from Quincy Regional Airport (UIN) to Hannibaltaxi
9h 15m$177–506Train (Amtrak)
- Take the train from San Diego to Fullerton Amtrak Stationtrain
- Take the train from Fullerton Amtrak Station to Galesburg Amtrak Stationtrain
- Take the train from Galesburg Amtrak Station to Quincy Amtrak Stationtrain
45h 53m$788–1,638Bus
- Take the bus from San Diego to Los Angeles Union Stationbus
- Take the bus from Los Angeles Union Station to St Louis Bus Stationbus
- Take the bus from Saint Louis to Hannibalbus
47h 40mDrive 1,752.2 mi
- Drive from San Diego to Hannibalcar 1,752.2 mi
30h 41m$320–462Fly to Columbia Regional Airport, shuttle
- Fly from San Diego International Airport (SAN) to Columbia Regional Airport (COU)plane SAN - COU
- Take a shuttle bus from Columbia to Hannibal
8h 25m$207–625Bus via St. Louis Airport (STL)
- Take the bus from San Diego to Los Angeles Union Stationbus
- Take the bus from Los Angeles Union Station to Saint Louisbus
- Take the bus from Saint Louis to Hannibalbus
2d 3hTrain, bus
- Take the train from San Diego to Los Angelestrain
- Take the train from Los Angeles to St. Louistrain
- Take the bus from Saint Louis to Hannibalbus
2d 14h
San Diego International Airport (SAN) to Lambert–St. Louis International Airport (STL) flights
Questions & Answers
The cheapest way to get from San Diego to Hannibal is to fly and taxi which costs $170 - $550 and takes 9h 15m.
The fastest way to get from San Diego to Hannibal is to fly and shuttle which takes 8h 25m and costs $200 - $650.
No, there is no direct bus from San Diego to Hannibal. However, there are services departing from San Diego and arriving at Hannibal via Los Angeles Union Station and Saint Louis. The journey, including transfers, takes approximately 47h 40m.
No, there is no direct train from San Diego to Hannibal station. However, there are services departing from San Diego and arriving at Quincy Amtrak Station via Fullerton Amtrak Station and Galesburg Amtrak Station. The journey, including transfers, takes approximately 45h 53m.
The distance between San Diego and Hannibal is 1672 miles. The road distance is 1762.5 miles.
The best way to get from San Diego to Hannibal without a car is to train which takes 45h 53m and costs $750 - $1,700.
It takes approximately 6h 50m to get from San Diego to Hannibal, including transfers.
San Diego to Hannibal bus services, operated by Greyhound Mexico, depart from San Diego station.
San Diego to Hannibal train services, operated by Amtrak, depart from San Diego station.
The best way to get from San Diego to Hannibal is to train which takes 45h 53m and costs $750 - $1,700. Alternatively, you can bus, which costs and takes 47h 40m.
What companies run services between San Diego, CA, USA and Hannibal, MO, USA?
You can take a train from San Diego to Hannibal via Fullerton Amtrak Station, Galesburg Amtrak Station, and Quincy Amtrak Station in around 45h 53m. Alternatively, you can take a bus from San Diego to Hannibal via Los Angeles Union Station, Saint Louis, and Hannibal in around 47h 40m.
- Website
- southwest.com
Flights from San Diego International Airport to Lambert–St. Louis International Airport
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- $180–800
Flights from San Diego International Airport to Lambert–St. Louis International Airport via Phoenix
- Ave. Duration
- 5h 46m
- When
- Sunday, Monday, Thursday, and Friday
- Estimated price
- $180–800
Flights from San Diego International Airport to Lambert–St. Louis International Airport via Denver
- Ave. Duration
- 5h 40m
- When
- Every day
- Estimated price
- $190–800
Flights from San Diego International Airport to Lambert–St. Louis International Airport via Dallas
- Ave. Duration
- 5h 45m
- When
- Sunday
- Estimated price
- $200–850
- Website
- aa.com
Flights from San Diego International Airport to Lambert–St. Louis International Airport via Phoenix
- Ave. Duration
- 5h 51m
- When
- Sunday
- Estimated price
- $180–800
Flights from San Diego International Airport to Columbia Regional Airport via Dallas/Ft.Worth
- Ave. Duration
- 6h 25m
- When
- Every day
- Estimated price
- $130–550
Flights from San Diego International Airport to Columbia Regional Airport via Chicago O'Hare
- Ave. Duration
- 9h 51m
- When
- Every day
- Estimated price
- $160–650
- Website
- united.com
Flights from San Diego International Airport to Lambert–St. Louis International Airport via Denver
- Ave. Duration
- 5h 49m
- When
- Every day
- Estimated price
- $190–800
Flights from San Diego International Airport to Columbia Regional Airport via Denver
- Ave. Duration
- 6h 26m
- When
- Every day
- Estimated price
- $120–550
Flights from San Diego International Airport to Columbia Regional Airport via Chicago O'Hare
- Ave. Duration
- 9h 55m
- When
- Every day
- Estimated price
- $160–650
- Website
- contouraviation.com
Flights from San Diego International Airport to Quincy Regional Airport via Nashville
- Ave. Duration
- 8h 45m
- When
- Tuesday, Wednesday, Thursday, Saturday, and Sunday
- Estimated price
- $110–450
Flights from San Diego International Airport to Quincy Regional Airport via Chicago O'Hare
- Ave. Duration
- 11h 50m
- When
- Every day
- Estimated price
- $100–430
Flights from San Diego International Airport to Quincy Regional Airport via Phoenix, Nashville
- Ave. Duration
- 14h 40m
- When
- Thursday
- Estimated price
- $110–450
Flights from San Diego International Airport to Quincy Regional Airport via Dallas, Nashville
- Ave. Duration
- 17h 10m
- When
- Thursday
- Estimated price
- $110–460
Rome2Rio's guide to Amtrak
Contact DetailsContact Details
- Phone
- +1 800-872-7245
- Website
- amtrak.com
Train from San Diego to Fullerton Amtrak Station
- Ave. Duration
- 2h 19m
- Frequency
- Hourly
- Estimated price
- $30–70
- Website
- https://www.amtrak.com/home.html
Train from Fullerton Amtrak Station to Galesburg Amtrak Station
- Ave. Duration
- 39h 31m
- Frequency
- Once daily
- Estimated price
- $650–1,400
- Website
- https://www.amtrak.com/home.html
Train from Galesburg Amtrak Station to Quincy Amtrak Station
- Ave. Duration
- 1h 34m
- Frequency
- Twice daily
- Estimated price
- $45–95
- Website
- https://www.amtrak.com/home.html
Train from San Diego to Los Angeles
- Ave. Duration
- 2h 56m
- Frequency
- Hourly
- Estimated price
- $40–85
- Website
- https://www.amtrak.com/home.html
Train from Los Angeles to St. Louis
- Ave. Duration
- 2d 7h
- Frequency
- 3 times a week
- Estimated price
- $750–1,700
- Website
- https://www.amtrak.com/home.html
- Website
- example.com
Bus from Saint Louis to Hannibal
- Ave. Duration
- 2h 5m
- Frequency
- Once daily
- Schedules at
- example.com
Bus from Saint Louis to Hannibal
- Ave. Duration
- 2h 25m
- Frequency
- Once daily
- Schedules at
- example.com
Bus from Saint Louis to Hannibal
- Ave. Duration
- 2h 5m
- Frequency
- Once daily
- Schedules at
- example.com
Bus from Saint Louis to Hannibal
- Ave. Duration
- 2h 25m
- Frequency
- Once daily
- Schedules at
- example.com
- Phone
- +1-800-231-2222
- [email protected]
- Website
- greyhound.com.mx
Bus from San Diego to Los Angeles Union Station
- Ave. Duration
- 2h 55m
- Frequency
- 3 times a day
- Estimated price
- $23–40
- Schedules at
- greyhound.com.mx
- Website
- greyhound.com
Bus from Los Angeles Union Station to St Louis Bus Station
- Ave. Duration
- 40h 15m
- Frequency
- Twice daily
- Schedules at
- greyhound.com
Bus from Los Angeles Union Station to Saint Louis
- Ave. Duration
- 43h 45m
- Frequency
- Once daily
- Schedules at
- greyhound.com
Rome2Rio's guide to Greyhound USA
Contact DetailsContact Details
- Phone
- +1 214-849-8100
- [email protected]
- Website
- greyhound.com
Bus from Los Angeles Union Station to St Louis Bus Station
- Ave. Duration
- 40h 15m
- Frequency
- Once daily
- Estimated price
- $290–550
- Website
- https://www.greyhound.com/
- Phone
- +1-888-875-6287
- Website
- oatstransit.org
Shuttle from Columbia to Hannibal
- Ave. Duration
- 1h 45m
- Frequency
- Twice a week
- Estimated price
- $4–6
- Website
- https://www.oatstransit.org
- Schedules at
- https://www.oatstransit.org/schedules
- Website
- flixbus.com
Bus from San Diego to Los Angeles Union Station
- Ave. Duration
- 3h 45m
- Frequency
- Once daily
- Schedules at
- flixbus.com
- Phone
- +1 (855) 626-8585
- Website
- https://www.flixbus.com
Bus from San Diego to Los Angeles Union Station
- Ave. Duration
- 3h 45m
- Frequency
- Once daily
- Estimated price
- $21–40
- Schedules at
- flixbus.com
- Ave. Duration
- 30 min
- Estimated price
- $70–85
Diamond Cab
- Phone
- +1-217-222-6700
Quincy Premium Transportation
- Phone
- +1 217-901-7433
- Website
- quincypremiumtransportation.com
Want to know more about travelling around United States
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Travelling to the US: What do I need to know?
Read the travel guide
Why you should take the train in the US
Read the travel guide
Need to know: Greyhound
Read the travel guide
More Questions & Answers
San Diego to Hannibal bus services, operated by Greyhound Mexico, arrive at Los Angeles Union Station.
Hannibal is 2h ahead of San Diego. It is currently 9:26 PM in San Diego and 11:26 PM in Hannibal.
San Diego to Hannibal train services, operated by Amtrak, arrive at Fullerton Amtrak Station.
Yes, the driving distance between San Diego to Hannibal is 1762 miles. It takes approximately 30h 41m to drive from San Diego to Hannibal.
Book your San Diego to Hannibal bus tickets online with Omio.
There are 21+ hotels available in Hannibal.














