The coach left the road in Peru and fell 100metres down the cliff, landing upside down on a rocky beach below.
Photos from the scene show the vehicle smashed to pieces in the horror crash.
The accident happened in Pasamayo, about 70 kilometres north of Lima.
The bus is believed to be carrying around 57 people – and the death toll is expected to rise.
Several passengers involved in the incident may have been returning to Lima, after marking New Year celebrations outside the city.
The accident happened on a notorious stretch of road known as Curva del Diablo – meaning the Devil's Bend – in Pasamayo, north of capital Lima.
The Pacific Ocean road is considered one of the most dangerous in Peru.
Initial reports said more than 40 people had been killed but Peru transport chief Dino Escudero later said only 25 deaths could so far be confirmed.
Images from the scene showed rescuers surrounding the wrecked coach while people on the road above looked on.
Mr Escudero said an investigation had been launched but it appeared that the coach had been in collision with the trailer of another vehicle, causing the driver to lose control.
He added: "It's a dangerous curve zone."
Road accidents are common in Peru because of unsafe highways. Police are investigating Tuesday's accident.
A helicopter was helping in the rescue operation.
Rescuers worked to pull victims from the hard-to-reach area in Pasamayo, about 70 kilometres north of Lima, it was reported.
Five survivors with serious injuries are beleved to have been taken to a nearby hospital.