All crew members were accounted for and no injuries were reported.
Three locomotives and an undetermined number of rail cars were off the tracks, said Jenny Sharp, a spokeswoman for the DuPont Fire Department south of Tacoma.
One of the two engines from the southbound train slid down an embankment more than 75 feet onto Old Nisqually Road, where it sunk 3 feet into the road.
Diesel fuel from at least one engine leaked near the Nisqually River a few miles upriver from the Nisqually Delta National Wildlife Refuge. Authorities checked for the possibility of hazardous or toxic substances, said Sharp, but no water source was contaminated.
Television reports showed some rail cars blocking Old Nisqually Road, and Mark Davis of Union Pacific said power lines were down. Most of DuPont was without electricity until about 5:45 a.m., Sharp said.
Details were sketchy, but Sharp and Davis said a southbound train from Seattle to Chicago apparently derailed about 3:15 a.m. at a railroad switch and bumped a few cars off the tracks from a northbound train from Portland to Seattle.
Union Pacific spokesman James Barnes said the southbound train had four locomotives and 111 cars and the northbound train had two locomotives and 98 cars.
The speeds of the trains were no immediately known, and the cause of the derailment was under investigation, Sharp said.
Both trains hauling were hauling shipping containers, Davis said.
Amtrak passengers were being bused between Seattle and Portland, Ore., because of the blockage, and the disruption was expected to continue into Thursday, according to an Amtrak news release.