"I heard what sounded like a crack from outside [the ship] at 5.50am," said Norman Fisher, 55, a solicitor from north London, one of 20 Britons on board the Seabourn Spirit which was carrying 312 passengers and crew.
"I looked out the window and saw a small boat with about five people in it, about 20 yards away. Two of them had rifles and one had some kind of rocket launcher. They were firing the rifle and then they fired the rocket launcher twice."
Mr Fisher said that at least one rocket hit the Spirit, one of the most luxurious liners in the world. The rocket broke through the side of the liner into a passenger's suite.
"The couple were in there at the time, so it was a bit of an unpleasant experience," said Mr Fisher. "Fortunately they weren't hurt, but you can just imagine what it would have been like if they had been standing up, because the cabin was very badly damaged."
Most passengers were asleep when the pirates struck from two inflatable speed boats that pulled up beside the liner. The first that many holidaymakers knew of the dawn raid was when a PA system message from Spirit's captain, Sven Erik Pedersen, ordered: "Stay inside. We're under attack."
Still in their pyjamas and dressing-gowns, they were instructed to assemble in the main restaurant in the middle of the ship. As the crew fought off the pirates on deck, ship's officers reassured the passengers, that despite the noise of the battle clearly taking place, everything was under control.
The crew managed to fend off the attack without returning a single shot. They used a machine that emits a loud bang to repel the pirates, and eventually managed to pull away from the speedboats.
Apart from a crew member who suffered minor injuries from flying debris, no one on board was injured.
According to another passenger, Edith Laird from Seattle, at least three rocket-propelled grenades hit the ship.
In an email to the BBC's website, Ms Laird said: "Our captain and the rest of his crew did a wonderful job getting us out of the area as fast as possible. We had no idea that this ship could move as fast as it did and he [the captain] did his best to run down the pirates."
But last night David Dingle, a spokesman for the Miami-based company Yachts of Seabourn, claimed that grenades had not hit the ship and it had only sustained small-arms fire.
Mr Dingle said the crew of the ship was trained in "protective and evasive measures" to deal with any attacks on the liner.
"We are extremely pleased that all the measures all worked," he said, as the Spirit altered its course for Mombasa and made for the Seychelles. "The captain and crew did a fantastic job."
The passengers' ordeal contrasts dramatically with the days of pampering and luxury that preceded it.
Almost at the end of 16 days on a cruise ship rated the best in the world by the readers of Condé Nast Traveller, passengers were accommodated in large sumptuous suites, some of which boast marble bathrooms.
They had each paid £3,400- £20,000 to be waited on hand and foot by staff trained to respond to their every whim. There is one crew member to every passenger.
The International Chamber of Commerce last month reported an unprecedented increase in the number of serious attacks off Somalia, ravaged by turf battles between rival warlords.
Since March, there have been 27 attacks on vessels off the coast of Somalia. In the cases of successful previous attacks, the pirates have taken the ship in-shore and demanded a ransom for the safe return of both vessel and crew.
The execution of previous attacks was startlingly similar to yesterday's assault on the Spirit. One or two fast boats pull alongside a vessel and pirates, armed with rocket-propelled grenade launchers and automatic weapons, open fire while others fight their way on board.
"These waters have become a pirate's charter and unless the international community takes action against these criminals, vessels passing this coast face considerable danger," said Captain Pottengal Mukundan, director of the International Chamber of Commerce's International Maritime Bureau, recently.
The Spirit is due to reach the Seychelles tomorrow.
'The finest cruise ship in the world'
A floating palace and pride of the Yachts of Seabourn fleet, the Spirit is owned by the cruise giant Carnival. The cost of a 30-day cruise from Istanbul to Mombasa ranges from £38,900 in the most luxurious suite to £13,320 in the cheapest. The vessel was voted best cruise ship in the world in a Condé Nast Traveller poll.
The Spirit carries a maximum of 208 passengers, who are promised "intimate luxury". The ship offers stylish lounges, a spa, boutique, gym, beauty salon and "unique marina for swimming".