No injuries were reported aboard the Sea Diamond, which apparently had hit a reef and was listing near the main port of the island.
The Merchant Marine Ministry said 1,195 passengers and 391 crew members were on board, and most had been evacuated safely.
“Thankfully, everything has gone well so far. Emergency services responded very quickly and very well,” Merchant Marine Minister Manolis Kefaloyiannis told state-run NET television.
The passengers were being transferred to a small ferry, which can hold 500 people.
Witnesses said hundreds of people waited on the deck the 469-foot Sea Diamond to be evacuated.
“We managed to get the ship away from the rocks and tugged the vessel toward the main harbour,” said Santorini’s regional governor, Chrysanthos Roussis.
Spokesman for Louis Cruise Lines Michalis Martheftis said none of the people on board was in danger: “The ship struck rocks. ... This is not an emergency situation but people on board are being evacuated as a precaution.”
More than a dozen ships in the area were involved in the rescue effort.