At least 20 people suffered light injuries, the German Maritime Emergency Centre said.
There were reports of an explosion on board early on Saturday, but officials said the cause of the fire was not clear.
Firefighters were still working to put out the flames at midday on Saturday.
The Lithuanian passenger and car ferry Lisco Gloria was on route from the German port of Kiel to Klaipeda in Lithuania when the fire broke out after midnight.
It had 236 passengers and crew on board, the Maritime Emergency Centre in Cuxhaven said. They had arrived back in Kiel to be questioned by police, a spokesman for the centre added.
He said extinguishing the flames was proving difficult, and firefighters were expecting to work to save the ship all through Saturday.
|Liveleak on Facebook|