The shortest road distance between Lisbon and Porto and vice versa is 318km / 03h22min by car according to Michelin.
There are four ways to travel this route
Air - Expensive and only one operator TAP
Rail - The Best
Road - Car Hire - More interesting as you can stop en route.
Bus - Cheapest
See this link on my blog for more info on rail and bus which I recommend.
http://barlaventostravelblog.blogspot.com/2007/07/lisbon-to-porto.html