The ferry, identified as the Sewol, was sailing to the southern island of Jeju when it sent a distress call as it began leaning to one side.
Navy vessels, helicopters and fishing boats are in the process of rescuing passengers who jumped off the boat with life vests. As of three hours after the accident, 178 passengers were safe on land, with two bodies found dead, South Korean Coast Guard officials said.
A female crew member, 22, is among the victims.
All passengers reportedly jumped before the ferry completely sank but South Korean Special Forces are checking underwater if any are left behind.
The passengers included 338 students and teachers from Danwon High School in Ansan, near Seoul, who were on a field trip. The school says all of the students and teachers are safe.
The reason for the crash is still unknown, but officials are looking into the possibility that it may have hit a reef.