The site is 11 miles from where an Amtrak crash killed 11 people last week.
Philadelphia-based Conrail said one of its eastbound freight trains hit a southbound Union Pacific train about 50 miles south of Chicago.
The crash happened east of Bourbonnais, the site of last week's Amtrak crash, but on a different track, officials said.
Three people, including the trains' two engineers, were taken to Riverside Medical Center in Kankakee with minor injuries, hospital spokesman Mike Silgen said. The hospital also handled injured passengers in last week's crash.
Both trains were moving at the time of Tuesday's crash and hit at about a 45-degree angle, said Conrail spokesman Ron Hildebrand. One engine was knocked on its side and in each train, four cars were derailed, he said.
"Our engine ran into the side of their train," Hildebrand said.
A small fire probably fueled by diesel spilled at the scene was put out quickly after firefighters arrived, said Jim Hildreth, a spokesman for Omaha-based Union Pacific.
Investigators would seek to determine whether signals on both tracks were working. Hildebrand said he didn't know which train had the right of way.
Track speed at that point was 45 mph, he said, though he didn't know how fast either train was traveling.
Firefighters were using sand and other equipment to contain diesel fuel spilling from the derailment, said Jim Lemotte, retired fire chief for the Momence Fire Department, who was handling media calls.
"There's quite a mess out there, with debris all around," he said. "It's not a real hazardous situation."