I am not sure about the cheapest method of travel but 2nd class on an Intercicades train between Porto and Lisboa costs about 20E. Seats are very comfortable for the 3 hour journey. You can pay about 10E extra to travel 1st class or 10 or 20E (1st/2nd class) extra to travel on an Alpha Pendular train which takes a whole 15 minutes less....why bother! almost 10 years ago
The train is probably the cheapest way as the car trip will be petrol and then the 20€ toll (unless you take the long long way around to avoid the toll)
There is always the option of finding cheap flights, although 20€ is as low as you are going to find. almost 10 years ago
If you want public transportation, you can go by bus or train.
The bus will cost you 17,50€ and it takes about 3h30m.
The train (2nd class) "intercidades" will cost you 20€ and it takes 3h.
However, these prices doesn't include student discounts or other discounts it may apply.
The portuguese train company site is www.cp.pt and it has information in english. almost 10 years ago
I think train and hiring a car, both options are good. Like if you choose train then you can go for three types of services
Quick - under 3 hours.
Cheap - 30-40 euros first class.
Regular - every hour or so
And http://www.cp.pt for the Portuguese railway operator. Book tickets online one month in advance.
And second option for hiring a car you can book from here http://wwww.lisboncars.com over 6 years ago