The woman and two toddlers also escaped unharmed, said Jim Gage, police chief in suburban Elm Grove.
The officer, a 17-year-old veteran, and the husband were hurt, but their injuries were not thought to be life threatening, Gage said. He was proud of the officer.
"He did an awesome job," he said. "... I wish it would have been different. You don't want to see anybody getting hurt at all, especially a person like him, who's just been an awesome guy to work with and has done a great job for us."
It was not clear why the van was on the tracks, but it appeared the woman got stuck in traffic, Gage said. The accident happened about 9:40 a.m. Monday, less than hour before a Memorial Day parade was to start nearby.
The husband, who was traveling behind the van in another vehicle, and the officer pulled the wife and two toddlers from the van but an infant was still in a car seat when the train struck the van. It pushed the vehicle into the men, Gage said.
He declined to identify any of the people involved.
Tim Weiner told reporters on the scene that he saw a police officer come "out of nowhere to help out." After the officer helped the woman and toddlers escape, he tried to save the infant, Weiner said.
"He was reaching in the back when the train hit the car," he said. "He was trying to get the child out. It was unbelievable. This guy is a hero .... He didn't have to risk his life."
Weiner ran over to the officer and thought he hurt his leg and shoulder.
"He just told me, 'Go to the car, get the kid out of there,"' he said. "Here he was laying in pain and all he thought about was getting that kid out. Amazing."
Weiner got the infant out of the car.
The van ended up about 200 feet away, with front end damage, Gage said. He didn't know whether the family was going to the parade but said the van was headed away from the area.
The 94-car freight train was going from Chicago to the Twin Cities with mixed cargo, Canadian Pacific spokesman Mike LoVecchio said. The crew had been told to sound the horn extra times because of holiday traffic, and they did that, he said.
LoVecchio said it's not clear yet how the van became stuck between the crossing gates but the accident serves as a reminder for drivers to be cautious.
"It is very dangerous to proceed into a crossing when you can't get through, meaning when there is extra traffic, stop short of the crossing," he said. "Don't proceed onto the tracks."
Canadian Pacific will cooperate with police and conduct its own internal investigation, as is standard, LoVecchio said.
The Elm Grove parade, which was canceled, is the only one in the area on Memorial Day and can draw about 10,000 people, said Craig Ochs, 36, of Brookfield.
"It's a pretty big event for Elm Grove," Ochs said. The village has about 6,200 residents.
Ochs was gathered with his family to watch and saw the train stop about a quarter or half-mile after hitting the van. They didn't know what had happened at first because it's normal to hear trains in the area and they didn't hear the collision, he said.
"After a period of time, they went up and down the streets and announced the parade was canceled," Ochs said.