Hundreds of rescuers were racing to pull passengers from the wreckage in a wooded area near Bad Aibling, a spa town about 60 kilometres (40 miles) southeast of Munich.
Several carriages were overturned.
“We have eight dead on the trains,” said police spokesman Juergen Thaimeier, adding that about 100 people had been injured, 55 of them seriously.
Local police spokesman Martin Winkler had earlier given a toll of four dead.
But rescuers subsequently found another four bodies in the train wreckage.
The “tragic accident occurred on the single-track route between Rosenheim and Holzkirchen this morning shortly after 7:00 am (0600 GMT),” regional rail company Meridian, a subsidiary of the French group Transdev, said in a statement.
The cause of the accident was not immediately clear.
Rainer Scharf, a police officer from the southern state of Bavaria, said that “given the severity of the accident, we believe the two regional trains collided head-on at a low speed.”
He added that the priority was to “rescue the many injured”.
The police tweeted that several hundred emergency services workers were on the scene in the rural area.
Rescue workers from nearby Austria were also on site, rolling news channel NTV said.
About a dozen helicopters were also deployed, with television footage showing them waiting in a clearing outside the forest, from where rescuers were emerging with stretchers carrying the injured.
A journalist for local broadcaster Bayerischer Rundfunk reported that rescuers were climbing on the wreckage and pulling people out.
The rail route was closed to traffic, as well as two local roads.
The country’s deadliest post-war accident happened in 1998, when a high-speed ICE train linking Munich and Hamburg derailed, killing 101 people and injuring 88 at the northern town of Eschede.