Emergency services and crew on board the passenger ship Zenith combined to quickly bring the fire under control.
"Everyone apart for a few members of the crew has been evacuated... we had a fire on board but after 10 minutes the people on the ship and the fire brigade managed to put it out," Björn Engstroem, a Stockholm police
spokesman, told AFP.
"Apart for a few members of the crew, everyone has been evacuated," he added.
Engström said two people suffered from smoke inhalation and that paramedics and firefighters were now at the scene.
He said there were 2,300 people on board at the time including the crew.
The Zenith sounded the alarm at just before 3pm at its mooring station in the port of Frihamnen, Stockholm.
Eye witness Björn Grinder reported on developments from his vantage point 50 metres from the ferry.
"The fire is on deck three, according to a passenger I met outside the ferry," said Grinder.
He added that ambulance staff had laid out stretchers beside the ship as smoke divers begin entering the vessel.
"Everything is orderly I would say and the situation is proceeding calmly. Just in the last minutes about a hundred people have flowed out," Grinder said.
According to Grinder, the fire was so vigorous that people were jumping into the water.