No one was injured, though one 71-year-old passenger from Australia had to be treated for shock in hospital.
The "Avalon Tranquility" was passing the town of Winzer at 9:30 p.m. on Friday when the waves caused a push barge to break free of its anchor, sending it on a collision course with the passenger ship. The impact drove the "Avalon" into a rock in the riverbed, ripping a hole in the side of the vessel and flooding the engine room.
The captain was able to steer the passenger boat to shore, while a second vessel traveling in the opposite direction picked up the 157 passengers on board the "Avalon Tranquility," as well as most of the 41-member crew, before bringing them to the harbour in Deggendorf.
Seven crew members remained on board after the evacuation effort, but a police spokesman said the ship is now unoccupied.
"We were on red alert," local fire inspector Leopold Schmid told German newspaper Passauer Neue Presse. Before they were evacuated from the ship, all passengers put on life vests and assembled on the upper deck. They stayed in hotels in Deggendorf overnight.
On Saturday, a spokesman for Lower Saxony police said divers were able to patch the hole, which was between 40 and 60 centimeters in size, while water pumps were used to keep the ship from sinking. The "Avalon Tranquility" is due to be hauled off to a shipyard near Deggendorf on Sunday.
The ship was on its way from Budapest to Amsterdam, with guests from the United States, Australia and New Zealand on board. Police said the ship, which is worth about €15 million, sustained hundreds of thousands of euros in damages.