Rome2Rio

How to get fromSan Diego to Hannibalby plane, bus, train (Amtrak), bus (Greyhound), car, shuttle, taxi, bus (Flixbus), or train

Find Transport to Hannibal

See all options

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.

  1. Fly to Lambert–St. Louis International Airport, bus

    best
    1. Fly from San Diego International Airport (SAN) to Lambert–St. Louis International Airport (STL)plane plane SAN - STL
    2. Take the bus from Saint Louis to Hannibalbus bus
    6h 50m
  2. Fly to Quincy Regional Airport, taxi

    cheapest
    1. Fly from San Diego International Airport (SAN) to Quincy Regional Airport (UIN)plane plane SAN - UIN
    2. Take the taxi from Quincy Regional Airport (UIN) to Hannibaltaxi taxi
    9h 15m
    $177–506
  3. Train (Amtrak)

    1. Take the train from San Diego to Fullerton Amtrak Stationtrain train
    2. Take the train from Fullerton Amtrak Station to Galesburg Amtrak Stationtrain train
    3. Take the train from Galesburg Amtrak Station to Quincy Amtrak Stationtrain train
    45h 53m
    $788–1,638
  4. Bus

    1. Take the bus from San Diego to Los Angeles Union Stationbus bus
    2. Take the bus from Los Angeles Union Station to St Louis Bus Stationbus bus
    3. Take the bus from Saint Louis to Hannibalbus bus
    47h 40m
  5. Drive 1,752.2 mi

    1. Drive from San Diego to Hannibalcar car 1,752.2 mi
    30h 41m
    $320–462
  6. Fly to Columbia Regional Airport, shuttle

    1. Fly from San Diego International Airport (SAN) to Columbia Regional Airport (COU)plane plane SAN - COU
    2. Take a shuttle bus from Columbia to Hannibalshuttle bus
    8h 25m
    $207–625
  7. Bus via St. Louis Airport (STL)

    1. Take the bus from San Diego to Los Angeles Union Stationbus bus
    2. Take the bus from Los Angeles Union Station to Saint Louisbus bus
    3. Take the bus from Saint Louis to Hannibalbus bus
    2d 3h
  8. Train, bus

    1. Take the train from San Diego to Los Angelestrain train
    2. Take the train from Los Angeles to St. Louistrain train
    3. Take the bus from Saint Louis to Hannibalbus bus
    2d 14h

San Diego International Airport (SAN) to Lambert–St. Louis International Airport (STL) flights

Calendar36Weekly Planes
Duration5h 35mAverage Duration
Ticket$186Cheapest Price
See schedules

Questions & Answers

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.

Airlines
Train operators
Bus operators
Other operators

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

Need to know: Greyhound

Read the travel guideNeed to know: Greyhound

More Questions & Answers