Porto and Lisbon are two of the largest cities in Portugal and serve as natural borders for the north and south end of what's known as the central region of the country. Both of these cities should be part of any adventure on the Iberian Peninsula, especially considering that transportation between Porto and Lisbon is quick, easy, and cheap.
You can get from Lisbon to Porto by bus, train, car, or airline, but each method of transport comes with its own benefits and drawbacks, which include varying costs, travel times, and luggage limits. Choosing the best method for your itinerary, then, comes down to how long you have to spend in Portugal, how much you've budgeted for travel and your personal travel needs.
Best Option: Train or Bus
There isn't much of a difference in prices between the bus and train, but the train makes a considerably quicker trip. Since both buses and trains run continually between Lisbon and Porto all day long, you can easily make a day trip from Lisbon with either method. Additionally, neither of these methods typically enforce baggage limitations, so you are free to travel with as much luggage as you'd like (within reason).
If you're traveling on Rail Europe from Lisbon, trains will depart from Santa Apolonia and Oriente train stations and cost between 30 and 42 euro depending on the number of stops on the route and the class of travel you choose. Santa Apolonia is the more central station and more likely to be where you want to get the train from, though Oriente is closer to Lisbon airport. If you're staying closer to the train station, this option is definitely your best choice for traveling to Porto.
The Intercidades (inter-city) train costs a bit less—$24 to 36 euro, depending on the class of travel you choose.
On the other hand, the Rede Expressos bus from Lisbon to Porto takes about three hours and 30 minutes and costs about 20 euro; there are buses every hour or half hour throughout the day. The bus station, called Sete Rios, is a little to the north of the city. In most cases, it'll be easier to get to the train station unless you're staying nearby.
Other Options: Driving and Flying
While taking a bus or train may save you time and money, the flexibility of driving and the convenience of flying may benefit your itinerary more, depending on what you hope to experience on your travels.
Renting a car can be rather expensive, especially if you are planning a long road trip, and you'll need to acquire an International Driver's Permit to operate a vehicle overseas. However, you'll also be able to add stops like the university town of Coimbra along the way between Porto and Lisbon. The drive is approximately 312 kilometers (194 miles) and takes just under three hours without traffic.
There are flights from Lisbon to Porto but they aren't really worth the more-than-double cost compared to trains or buses. Although flights only take an hour to complete and you can purchase tickets for as little as 80 euros, check-in time and waiting for your luggage at the airport means you'll wind up spending just as much time in transit by flying.
Staying in Porto
Whatever method of transit you choose, you may wind up loving Porto so much you decide to spend extra time in the city instead of making a day trip out of your adventure.
To get the most out of a multi-day trip, consider booking a hotel in Porto that's close to Sao Bento station, where you'll have better access to the city center. However, if you just want to spend one extra night in the city, it's best to get accommodations near the Campanha train station to make a quick exit the next morning.
Great Destinations Between Porto and Lisbon
If you do choose to drive (or get a bus that makes several stops along the way), you should consider adding some of the smaller cities and towns in Portugal to your travel itinerary. There are many great destinations between Porto and Lisbon including Obidos, a town completely surrounded by massive walls; Batalha, home of the gothic-style Batalha Monastery, and the Berlengas Islands, which house the Fort of São João Baptista.