There are several types of transportation you can use to get from Stockholm to Oslo (or in the other direction), and each transportation option has pros and cons. Let's find out which way of getting from Stockholm to Oslo fits you best.
1- Stockholm to Oslo by Air
You can get from Stockholm to Oslo with a quick, direct 1-hour flight. These flights depart several times daily, most offered by SAS and Norwegian. Roundtrip airline tickets from Stockholm to Oslo (and from Oslo to Stockholm) start around $150 but depending on the time of year, they sometimes offer ticket prices under $100. A fast option, but involves getting to the airport.
2- Stockholm to Oslo by Train
Taking the train from Stockholm to Oslo can cost less and you can reserve tickets online, but the trip takes longer. Expect travel times of 5-7 hours between Stockholm and Oslo. RailEurope offers unlimited train travel in Sweden and Norway.
The quickest (and priciest) between Oslo and Stockholm is a new high-speed train operating 2-3 times a day in each direction. Cheaper is Swedish Railways (SJ.se), where InterCity train tickets cost around SEK 300 one way. Adults traveling with SJ can bring 2 passengers under 15 for just SEK 5 per child. Those trains connect Stockholm with Oslo through a 6-7 hour trip.
3- Stockholm to Oslo by Car
If you'd like to rent a car to get from Stockholm to Oslo, know that it's just over 500 km (310 mi) or a 6 1/2 hour drive. Depending on your location in Stockholm, get to Oslo using road E18 or E20 (the distance is equal).
If you use the E20 first, merge onto E18 at exit 121 toward Örebro/Oslo. Going from Oslo to Stockholm, simply use E18 all the way. Getting from Stockholm to Oslo (and back) by car is one of your slower options, not to mention the gas prices.
4- Stockholm to Oslo by Bus
There are buses connecting the cities of Stockholm and Oslo. Be warned, I don't recommend this transportation option unless you have plenty of time to enjoy the scenery, and don't want to pay much.
Getting from Stockholm to Oslo by bus takes at least 8 hours. A single ticket from Stockholm to Oslo starts around 200 SEK. You can purchase your bus ticket online, at Cityterminalen in Stockholm, in Swebus offices, by cell phone, or on the bus (no cash accepted by bus drivers). The bus terminal in Oslo (Vaterland) is located next to the Central Railway Station. Swebus Express operates this bus connection (departing 4 times daily) but doesn't offer online ticketing.