A freight train smashed into a minivan stuck on railroad tracks Monday, injuring both a police officer and a husband who scrambled to pull his wife and boy to safety.

The woman and child were unhurt, said Jim Gage, the police chief in suburban Elm Grove.

The officer, 41-year-old John Krahn, was in satisfactory condition Monday evening following surgery, said Kim Wick, a spokeswoman for Froedtert Memorial Lutheran Hospital in Milwaukee. Scott Partenfelder, 47, remained in surgery after more than five hours, she said.

Gage said he was proud of Krahn, a 17-year veteran.

"He did an awesome job," Gage 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 wasn't clear why the van driven by Monica Ensley-Partenfelder, 40, was on the tracks, but it appeared she 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 parade was canceled.

Partenfelder, her husband, had been traveling behind the van in another vehicle with two other children, Gage said. He and Krahn pulled the wife out, but their 2-year-old son was still inside when the train struck the van and knocked it into the men.

Witness 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, he tried to save the boy, 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 boy 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.

Village trustee Jan Schoenecker said she was still shaken hours after the crash, which she heard but didn't see from her house nearby.

"I heard loud, very loud screeching of the train and then a crash and then the continued screeching of the train and then I heard screams (for help)," she said.

She knows Krahn and said he has children himself. She called him a hero.

"That's action in the call of duty," she said.

The Memorial Day parade had been expected to draw thousands of people to the village of about 6,200 just west of Milwaukee.

Emergency vehicles would have had trouble getting to the crash because of the traffic and crowds, Schoenecker said.

The 94-car freight train was going from the Twin Cities to Chicago with mixed cargo. The crew had been told to sound the horn extra times because of holiday traffic and they complied, Canadian Pacific spokesman Mike LoVecchio said.

He 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," LoVecchio said. "Don't proceed onto the tracks."

Canadian Pacific will cooperate with police and conduct its own internal investigation, as is standard, he said.