The crash happened around 2:30 p.m. Sunday at Route 29 and Calhoun Street.
Police say 43-year-old Jennifer Dawson, of Bensalem, was driving a Toyota Solara northbound when she lost control and drifted into the southbound lanes of Route 29.
Her car was then hit by a pickup truck.
Dawson survived, but her 28-year-old daughter, Shaneeka, and her two granddaughters, 5-year-old A'iana Dodson and 4-year-old Trinidi Dawson, were killed.
Both Jennifer Dawson and the driver of the pickup truck were taken to the hospital for observation.
"We heard a loud bang so my mother yelled and said 'Call 911!'" said witness Megan Higgenbotham.
She, and her neighbors, rushed to the scene to help. The driver of the pickup was safely out of her vehicle but the people in the car were in bad shape.
"The passenger, at the time, was moving and we were telling her 'Don't move,'" Higgenbotham said. "The driver kept saying 'My babies, my babies,' and we asked her how many other people were in the car with her and she said 'two,' and we said 'Two people?'"
They looked in the back seat and found the small children.
Jennifer Dawson is a Mercer County corrections officer. She was in uniform on her way to work.
"A grandmother is going to have to deal with that, the person who drove the other car is going to have to deal knowing she was in an accident and three people lost their lives," said Higgenbotham. "And the kids? You never know what the possibilities could have been with those babies."
Investigators say while the cause of the accident is still under investigation, it does not appear that speed was a factor.
It also appears that the driver of the pickup could not avoid the crash, investigators said.