At least 261 people have died in India's worst rail accident in over two decades, officials said on Saturday, after a passenger train went off the tracks and hit another one in the east of the country.

One train in Friday's accident also hit a freight train parked nearby in the district of Balasore in Odisha state, leaving a tangled mess of smashed rail cars that also injured 650.

The death toll has reached 261, said K. S. Anand, chief public relations officer of South Eastern Railway. The AFP news agency had earlier quoted an official as saying 288 people had died.