"I had just fallen asleep when I heard everyone start screaming. Suddenly the bus drove into the ditch and tipped over," a passenger told the Aftonbladet newspaper.
After the driver fainted, the bus veered off the E4 motorway north of Stockholm's Arlanda airport.
All of the passengers on the bus survived the crash relatively unscathed, save for a few minor cuts and bruises.
"The driver's vision started to go black and then he fainted," said Benny Eriksson, CEO of bus operator Ceris Resor, to the TT news agency.
The bus's second driver noticed what was happening and took the wheel from his passed-out colleague, but was unable to prevent the vehicle from heading into the ditch.
However, the bus had lost quite a bit of speed before veering off the road.
According to Eriksson, the bus then came to a standstill before then falling on its side.
The bus had started it's journey at the Stockholm harbour of Värtahamn, where it had picked up passengers traveling back to Sweden from the Baltic islands of Åland with Tallinn and Silja Line ferries.
The bus was set to make stops in Uppsala and Gävle in eastern Sweden before continuing north to Sundsvall.
A car that stopped near the scene of the accident was also hit by another car, causing minor injuries to people in both cars, according to police.
As of late Sunday night, it still remained unclear what caused the driver of the bus to pass out.
According to Eriksson, the driver is 55-years-old and has been working as a driver for Ceris Resor for 15 years.
"It was damn lucky that things went as they did," he told TT.