There are 4 ways to get from San Diego to Gresham by plane, bus (Greyhound), train (Amtrak), or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly
best- Fly from San Diego International Airport (SAN) to Portland International Airport (PDX)plane SAN - PDX
3h 37m$186–274Bus (Greyhound)
- Take the bus from San Diego Greyhound Bus Stop to Sacramento Bus Stationbus Greyhound US0831
- Take the bus from Sacramento Bus Station to Portland Curbside Bus Stopbus Greyhound US0500
29h 59m$200–305Train (Amtrak)
- Take the train from San Diego to Los Angelestrain Pacific Surfliner
- Take the train from Los Angeles to Portlandtrain Coast Starlight
34h 50m$723–1,211Drive 1,091.8 mi
- Drive from San Diego to Greshamcar 1,091.8 mi
18h 35m$187–270
San Diego to Gresham by tram, bus, and foot (Greyhound)
Comparing Your Travel Options
The cheapest way to get from San Diego to Gresham is to fly which costs $180 - $280 and takes 3h 37m.
The fastest way to get from San Diego to Gresham is to fly which takes 3h 37m and costs $180 - $280.
No, there is no direct bus from San Diego to Gresham. However, there are services departing from San Diego Greyhound Bus Stop and arriving at NW Division & Eastman Pkwy via Sacramento Bus Station and NW 5th & Davis. The journey, including transfers, takes approximately 29h 59m.
No, there is no direct train from San Diego to Gresham station. However, there are services departing from San Diego and arriving at Gresham City Hall station via Los Angeles and Rose Quarter TC station. The journey, including transfers, takes approximately 34h 50m.
The distance between San Diego and Gresham is 952 miles. The road distance is 1098.2 miles.
The best way to get from San Diego to Gresham without a car is to bus which takes 29h 59m and costs $200 - $310.
It takes approximately 3h 37m to get from San Diego to Gresham, including transfers.
San Diego to Gresham bus services, operated by Greyhound USA, depart from San Diego Greyhound Bus Stop station.
San Diego to Gresham train services, operated by Amtrak, depart from San Diego station.
The best way to get from San Diego to Gresham is to fly which takes 3h 37m and costs $180 - $280. Alternatively, you can bus, which costs $200 - $310 and takes 29h 59m, you could also train, which costs $700 - $1,300 and takes 34h 50m.
What companies run services between San Diego, CA, USA and Gresham, OR, USA?
Southwest Airlines and Alaska Airlines, Inc. fly from San Diego International Airport (SAN) to Portland International Airport (PDX) every 2 hours. Alternatively, you can take a vehicle from County Center/Little Italy Station to NW Division & Eastman Pkwy via Old Town Station, San Diego Greyhound Bus Stop, Sacramento Bus Station, Portland Curbside Bus Stop, and NW 5th & Davis in around 29h 59m.
- Website
- alaskaair.com
Flights from San Diego International Airport to Portland International Airport
- Ave. Duration
- 2h 42m
- When
- Every day
- Estimated price
- $130–650
Flights from San Diego International Airport to Portland International Airport via Sacramento
- Ave. Duration
- 4h 29m
- When
- Tuesday and Wednesday
- Estimated price
- $130–650
Flights from San Diego International Airport to Portland International Airport via Reno
- Ave. Duration
- 4h 35m
- When
- Every day
- Estimated price
- $130–650
Flights from San Diego International Airport to Portland International Airport via Oakland
- Ave. Duration
- 4h 48m
- When
- Every day
- Estimated price
- $130–650
- Website
- southwest.com
Flights from San Diego International Airport to Portland International Airport
- Ave. Duration
- 2h 42m
- When
- Every day
- Estimated price
- $55–300
Flights from San Diego International Airport to Portland International Airport via Sacramento
- Ave. Duration
- 4h 35m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- $60–310
Flights from San Diego International Airport to Portland International Airport via San Jose
- Ave. Duration
- 4h 25m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- $60–310
Flights from San Diego International Airport to Portland International Airport via Oakland
- Ave. Duration
- 4h 25m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- $60–310
Rome2Rio's guide to Amtrak
Contact Details
- Phone
- +1 800-872-7245
- Website
- Amtrak
Train from San Diego to Los Angeles
- Ave. Duration
- 2h 56m
- Frequency
- Hourly
- Estimated price
- $70–110
- Website
- Amtrak
Train from Los Angeles to Portland
- Ave. Duration
- 29h 49m
- Frequency
- Once daily
- Estimated price
- $650–1,100
- Website
- Amtrak
Rome2Rio's guide to Greyhound USA
Contact Details
- Phone
- +1 214-849-8100
- [email protected]
- Website
- Greyhound
Bus from San Diego Greyhound Bus Stop to Sacramento Bus Station
- Ave. Duration
- 13h 5m
- Frequency
- Once daily
- Estimated price
- $95–150
- Website
- Greyhound
Bus from Sacramento Bus Station to Portland Curbside Bus Stop
- Ave. Duration
- 13h 30m
- Frequency
- Twice daily
- Estimated price
- $100–160
- Website
- Greyhound
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
Need to know: Greyhound
Read the travel guide
Why you should take the train in the US
Read the travel guide
Booking & Getting There
San Diego to Gresham bus services, operated by Greyhound USA, arrive at Sacramento Bus Station.
San Diego to Gresham train services, operated by Amtrak, arrive at Los Angeles station.
Yes, the driving distance between San Diego to Gresham is 1098 miles. It takes approximately 18h 35m to drive from San Diego to Gresham.
There are 754+ hotels available in Gresham.














