A bus travelling along a narrow stretch of Peruvian highway known as the "Devil's Curve" has tumbled off a cliff and onto a rocky beach, killing at least 46 people.

Key points: The bus was struck by a truck and plunged 80 metres down a cliff

The bus was struck by a truck and plunged 80 metres down a cliff There is no direct access to the beach where the bus landed, complicating rescue efforts

There is no direct access to the beach where the bus landed, complicating rescue efforts The highway the bus was travelling on is narrow, frequently covered in mist and has seen numerous accidents

The bus was carrying 57 passengers to Peru's capital Lima when it was struck by a semi-trailer and plunged down the slope, Claudia Espinoza from Peru's voluntary firefighter brigade said.

It fell about 80 metres, police said.

The blue bus came to rest upside down on a narrow strip of shore next to the Pacific, with the lifeless bodies of passengers strewn among the rocks.

The bus came to rest upside down on the rocky beach. ( Twitter: Peruvian Navy )

Rescuers worked to pull victims from the hard-to-reach area in Pasamayo, about 70 kilometres north of Lima.

No road leads directly to the beach, complicating rescue efforts, Ms Espinoza said, though police and firefighters managed to transport six survivors with serious injuries to a nearby hospital.

Rescue workers managed to transport six survivors to a nearby hospital. ( Andina News Agency via AP )

Ms Espinoza said the passengers in the crash included many who were returning to Lima after celebrating the New Year's holiday with family outside the city.

The highway is known as the Devil's Curve because it is narrow, frequently shrouded in mist and curves along a cliff that has seen numerous accidents.

The Devil's Curve is narrow and frequently covered in mist. ( Google Maps )

"It's very sad for us as a country to suffer an accident of this magnitude," Peruvian President Pedro Pablo Kuczynski said in a statement.

Traffic accidents are common along Peru's roadways, with more than 2,600 people killed in 2016.

More than three dozen died when three buses and a truck collided in 2015 on the main costal highway.

Twenty people were killed in November when a bus plunged off a bridge into a river in the southern Andes.

Rescue crews work at the scene of a fatal bus crash at the Devil's Curve in Peru. ( Twitter: Peruvian Navy )

The nation's deadliest traffic crash on record happened in 2013 when a makeshift bus carrying 51 Quechua Indians back from a party in south-eastern Peru fell off a cliff into a river, killing everyone on board.

Miguel Sidia, a transportation expert in Peru, said while road conditions in the Andean nation had improved in recent years, a lack of driver education and little enforcement of road rules still led to many fatalities each year.

He called on authorities to immediately conduct studies into building a new highway further from the cliff where the accident occurred.

"As a Peruvian, it's shameful," he said.

AP